Otu esi agba ọtụtụ weebụsaịtị na ụdị PHP dị iche iche na Nginx


Mgbe ụfọdụ ndị mmepe PHP chọrọ iji ụdị PHP dị iche iche wulite ma na-agba ọsọ webụsaịtị/ngwa dị iche iche n'otu sava weebụ. Dịka onye na-ahụ maka sistemụ Linux, achọrọ ka ịtọlite gburugburu ebe ị nwere ike iji ụdị PHP dị iche iche na-agba ọsọ n'otu sava weebụ ya bụ Nginx.

N'ime nkuzi a, anyị ga-akọwara gị otu esi etinye ọtụtụ ụdị PHP wee hazie sava weebụ Nginx ka ya na ha rụọ ọrụ site na ngọngọ sava (virtual hosts in Apache) na CentOS/RHEL 7 nkesa site na iji nchịkọta LEMP.

Nginx na-eji PHP-FPM (na-eguzo maka FastCGI Process Manager), nke bụ ihe ọzọ PHP FastCGI mmejuputa ya na ụfọdụ ihe mgbakwunye, bara uru maka weebụsaịtị ndị ebujuru.

  1. Ihe nkesa RHEL 7 nwere obere nrụnye.
  2. Nginx HTTP sava.
  3. PHP 7.1 (a ga-eji dị ka ụdị ndabara) na 5.6.
  4. MariaDB Ebe nchekwa data.
  5. Adreesị IP nke sava: 192.168.56.10.
  6. Webụsaịtị: example1.com na example2.com.

Kwụpụ 1: Ịwụnye na Kwado EPEL na Remi Repository

1. Buru ụzọ malite site na ịwụnye ma mee ka ebe nchekwa EPEL na Remi nwee ike, nke na-enye nsụgharị PHP kacha ọhụrụ na nkesa CentOS/RHEL 7.

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

2. Ọzọ wụnye ngwugwu yum-utils, nke na-agbatị ọrụ obodo yum ma na-enye iwu yum-config-manager, nke a na-eji mee ka ma ọ bụ gbanyụọ Yum repositories na usoro.

# yum install yum-utils

Mara: Na RHEL 7 ị nwere ike mee ka ọwa nhọrọ maka ụfọdụ dabere na iji iwu a.

# subscription-manager repos --enable=rhel-7-server-optional-rpms

Nzọụkwụ 2: Ịwụnye Nginx Web Server

3. Iji wụnye ụdị Nginx kachasị ọhụrụ, anyị kwesịrị ịgbakwunye ebe nchekwa Nginx gọọmentị, mepụta faịlụ aha ya bụ /etc/yum.repos.d/nginx.repo.

# vi /etc/yum.repos.d/nginx.repo

Tinye ahịrị ndị a na faịlụ dịka nkesa gị si dị.

--------------- On CentOS 7 --------------- 
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/ 
gpgcheck=0 
enabled=1 


--------------- On RHEL 7 ---------------
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/7.x/$basearch/ 
gpgcheck=0 
enabled=1 

4. Ozugbo nginx repo agbakwunyere, ị nwere ike ịwụnye Nginx site na iji yum ngwugwu njikwa ngwá ọrụ dị ka egosiri.

# yum install nginx

Kwụpụ 3: Ịwụnye MariaDB Database Server

5. Iji wụnye ụdị MariaDB kachasị ọhụrụ, anyị kwesịrị ịgbakwunye ebe nchekwa MariaDB, mepụta faịlụ aha ya bụ /etc/yum.repos.d/mariadb.repo.

# vi /etc/yum.repos.d/mariadb.repo

Tinye ahịrị ndị a na faịlụ dịka nkesa gị si dị.

--------------- On CentOS 7 --------------- 
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


--------------- On RHEL 7 ---------------
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/rhel7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1 

6. Ozugbo MariaDB repo agbakwunyere, ị nwere ike iwunye MariaDB site na iji ngwa njikwa ngwugwu yum dị ka egosiri.

# yum install MariaDB-client MariaDB-server

7. E mesịa, chekwaa nwụnye nkesa nchekwa data site na iji edemede dị n'okpuru. Tọọ okwuntughe mgbọrọgwụ wee zaa y wee pịa [Tinye] maka ajụjụ ndị ọzọ na-esote iji gbanyụọ nbanye onye ọrụ mgbọrọgwụ, wepụ akaụntụ onye ọrụ na-amaghị aha yana nwalee nchekwa data nke ndị ọrụ niile nwere ike ịnweta na ndabara. , ọbụna ndị ọrụ amaghị aha.

# mysql_secure_installation

Kwụpụ 4: Ịwụnye ọtụtụ ụdị PHP

8. Iji wụnye ụdị PHP dị iche iche maka ọrụ gị, jiri iwu yum-config-manager iji wụnye ọtụtụ ụdị PHP yana modulu achọrọ dị ka egosiri.

# yum-config-manager --enable remi-php71  [Default]
# yum install php php-common php-fpm
# yum install php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
# yum install php56 php56-php-common php56-php-fpm
# yum install php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo

9. Ozugbo arụnyere PHP, ịnwere ike iji iwu na-esonụ iji lelee ụdịdị PHP nke ejiri na sava gị.

# php -v

Kwụpụ 5: Ịhazi PHP-FPM na PHP56-PHP-FPM

10. Nke a bụ akụkụ kacha adọrọ mmasị na nkuzi a, ọ na-akọwa otu ị nwere ike isi mee ọtụtụ ụdị PHP na sava gị. N'ebe a, ị ga-ahazi ụdị php-fpm dị iche iche nke Nginx ga-arụ ọrụ. Ị kwesịrị ịkọwa onye ọrụ/otu nke usoro FastCGI yana ọdụ ụgbọ mmiri ha ga-ege ntị.

Ndị a bụ faịlụ nhazi abụọ ndị a ị ga-edezi.

  • php-fpm (nke ndabara 7.1) - /etc/php-fpm.d/www.conf
  • php56-php-fpm – /opt/remi/php56/root/etc/php-fpm.d/www.conf

Mepee faịlụ ndị dị n'elu, tọọ onye ọrụ/otu nke usoro FastCGI.

# vi /etc/php-fpm.d/www.conf   [PHP 7.1]
# vi /opt/remi/php56/root/etc/php-fpm.d/www.conf  [PHP 5.6] 

Ụkpụrụ ndabara kwesịrị ịbụ apache, gbanwee ha na nginx dị ka egosiri.

user = nginx
group = nginx

11. Ọzọ, chọta paramita ntị, ma kọwaa adreesị: ọdụ ụgbọ mmiri nke a ga-anata arịrịọ FastCGI.

listen = 127.0.0.1:9000	[php-fpm]
listen = 127.0.0.1:9001	[php56-php-fpm]

12. Ozugbo emechara nhazi niile dị n'elu, ịkwesịrị ịmalite ma mee ka Nginx, MariaDB na PHP-FPM malite na-amalite na boot boot.

# systemctl enable nginx 
# systemctl start nginx 

# systemctl enable mariadb 
# systemctl start mariadb 

---------------- PHP 7.1 ---------------- 
# systemctl enable php-fpm 
# systemctl start php-fpm 

---------------- PHP 5.6 ----------------
# systemctl enable php56-php-fpm 
# systemctl start php56-php-fpm 

Ntị: Ọ bụrụ na ịnweta njehie ọ bụla mgbe ị na-amalite usoro nke abụọ nke PHP, php56-php-fpm, amụma SELinux nwere ike igbochi ya ịmalite. Ọ bụrụ na SELinux nọ na ọnọdụ mmanye, tọọ ya na ọnọdụ ikike, wee gbalịa ịmalite ọrụ ahụ ọzọ.

# getenforce
# setenforce 0 

Kwụpụ 6: Mepụta weebụsaịtị nwere ikike

13. N'ebe a, ị nwere ike ịmepụta akwụkwọ ndekọ aha dị mkpa maka weebụsaịtị gị n'okpuru /var/www/html/. Ịkwesịrị ịmepụta akwụkwọ ndekọ aha iji chekwaa ndekọ dịka ndị a:

---------------- Website 1 ----------------
# mkdir -p /var/www/html/example1.com/ 
# mkdir -p /var/log/nginx/example1.com/ 
 

---------------- Website 2 ----------------
# mkdir -p /var/www/html/example2.com/
# mkdir -p /var/log/nginx/example2.com/ 

14. Tọọ ikike nwe kwesịrị ekwesị na akwụkwọ ndekọ aha niile.

---------------- Website 1 ----------------
# chown -R root:nginx /var/www/html/example1.com/ 
# chmod -R 755 /var/www/html/example1.com/ 
# chown -R root:nginx /var/log/nginx/example1.com/
# chmod -R 660 /var/log/nginx/example1.com/ 

---------------- Website 2 ----------------
# chown -R root:nginx /var/www/html/example2.com/ 
# chmod -R 755 /var/www/html/example2.com/
# chown -R root:nginx /var/log/nginx/example2.com/ 
# chmod -R 660 /var/log/nginx/example2.com/

Kwụpụ 7: Mepụta Nginx Server Blocks maka weebụsaịtị

15. Ugbu a hazie ka Nginx ga-esi hazie arịrịọ na weebụsaịtị gị site na iji faịlụ nhazi ihe nkesa nke kwesịrị ịdị na /etc/nginx/conf.d/.

Mepụta faịlụ nhazi maka weebụsaịtị gị na-ejedebe na ndọtị .conf.

# vi /etc/nginx/conf.d/example1.com.conf
# vi /etc/nginx/conf.d/example2.com.conf

Mgbe ahụ mado nhazi ngọngọ ihe nkesa ndị a na faịlụ ndị a.

server {
        listen 80;
        server_name example1.com www.example1.com;

        root   /var/www/html/example1.com/;
        index index.php index.html index.htm;

        #charset koi8-r;
        access_log /var/log/nginx/example1.com/example1_access_log;
        error_log   /var/log/nginx/example1.com/example1_error_log   error;

       location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {

                root    /var/www/html/example1.com/;
                fastcgi_pass   127.0.0.1:9000;	#set port for php-fpm to listen on
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include         fastcgi_params;
                include /etc/nginx/fastcgi_params;

        }
}
server {
        listen 80;
        server_name example2.com www.example2.com;

        root    /var/www/html/example2.com/;
        index index.php index.html index.htm;

        #charset koi8-r;
        access_log /var/log/nginx/example2.com/example2_access_log;
        error_log  /var/log/nginx/example2.com/example2_error_log   error;

       location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {

                root    /var/www/html/example2.com/;
                fastcgi_pass   127.0.0.1:9001;	#set port for php56-php-fpm to listen on
	        fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include         fastcgi_params;
                include /etc/nginx/fastcgi_params;

        }
}

16. Jide n'aka na ị nwere ahịrị na-esonụ na njedebe nke ngọngọ http na /etc/nginx/nginx.conf. Ọ na-enyere aka ịgụnye faịlụ nhazi niile n'ime /etc/nginx/conf.d/ directory mgbe Nginx na-agba ọsọ.

include /etc/nginx/conf.d/*.conf;

Kwụpụ 8: Nyochaa ụdị PHP dị iche iche

17. N'ikpeazụ, ịkwesịrị ịnwale na ihe nkesa gị na-eji ụdị abụọ nke PHP. Ị nwere ike ịmepụta script info.php dị ezigbo mkpa na akwụkwọ ndekọ mgbọrọgwụ nke weebụsaịtị gị dịka egosiri.

# echo "<?php phpinfo(); ?>" > /var/www/html/example1.com/info.php
# echo "<?php phpinfo(); ?>" > /var/www/html/example2.com/info.php

18. Iji tinye mgbanwe niile ị mere n'elu, ịkwesịrị ịmalitegharịa Nginx, php-fpm na php56-php-fpm. Mana ị nwere ike buru ụzọ lelee na faịlụ nhazi Nginx maka njehie syntax ọ bụla tupu ime ya.

# nginx -t 
# systemctl restart nginx php-fpm php56-php-fpm

19. Enwere otu ihe ikpeazụ ị ga-eme, karịsịa ma ọ bụrụ na ị na-agba ọsọ nkesa gị na mpaghara, ịkwesịrị ịtọlite DNS mpaghara site na iji /etc/hosts file dị ka egosiri na nseta ihuenyo dị n'okpuru.

192.168.56.10   example1.com   example1
192.168.56.10   example2.com   example2

20. N'ikpeazụ, mepee ihe nchọgharị weebụ wee pịnye adreesị ndị a iji nyochaa nsụgharị nke PHP arụnyere na sistemụ.

http://example1.com/index.php
http://example2.com/index.php

Ọ bụ ya! Ugbu a ị nwere ike ibugharị faịlụ ma nwalee weebụsaịtị nwere ụdị PHP dị iche iche. Ọ bụrụ na ị nwere mgbakwunye ọ bụla ịme ma ọ bụ ajụjụ ị ga-ebute, jiri ụdị nkọwa n'okpuru.