Yadda ake Gudun Shafukan Yanar Gizo da yawa tare da Sifofin PHP daban-daban a cikin Nginx


Wani lokaci masu haɓaka PHP suna son ginawa da gudanar da gidajen yanar gizo/aikace-aikace daban-daban ta amfani da nau'ikan PHP daban-daban akan sabar gidan yanar gizo iri ɗaya. A matsayinka na mai gudanar da tsarin Linux, ana buƙatar ka saita yanayin da za ka iya tafiyar da gidajen yanar gizo da yawa ta amfani da nau'in PHP daban-daban akan sabar yanar gizo guda ɗaya watau Nginx.

A cikin wannan koyawa, za mu bayyana muku yadda ake shigar da nau'ikan nau'ikan PHP da yawa kuma saita sabar gidan yanar gizo Nginx don yin aiki tare da su ta hanyar tubalan uwar garken (masu runduna ta zahiri a Apache) a cikin rarrabawar CentOS/RHEL 7 ta amfani da tari na LEMP.

Nginx yana amfani da PHP-FPM (yana tsaye ga FastCGI Process Manager), wanda shine madadin aiwatar da FastCGI na PHP tare da wasu ƙarin fasaloli masu amfani ga gidajen yanar gizo masu nauyi.

  1. Sabar RHEL 7 mai ƙarancin shigarwa.
  2. Nginx HTTP Server.
  3. PHP 7.1 (wanda za a yi amfani da shi azaman tsoho version) da 5.6.
  4. MariaDB Database Server.
  5. Adireshin IP na uwar garke: 192.168.56.10.
  6. Shafukan yanar gizo: example1.com da kuma example2.com.

Mataki 1: Shigarwa da Kunna EPEL da Ma'ajiyar Remi

1. Da farko farawa ta hanyar sakawa da kunna ma'ajiyar EPEL da Remi, wanda ke ba da sabbin nau'ikan tari na PHP akan rarrabawar 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. Na gaba shigar da yum-utils kunshin, wanda ke fadada aikin yum na asali kuma yana ba da umarnin yum-config-manager, wanda ake amfani dashi don kunna ko kashe ma'ajin Yum akan tsarin.

# yum install yum-utils

Lura: A RHEL 7 zaku iya kunna tashar zaɓi don wasu abubuwan dogaro ta amfani da umarni mai zuwa.

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

Mataki 2: Shigar Nginx Web Server

3. Don shigar da sabon sigar Nginx, muna buƙatar ƙara ma'ajiyar Nginx na hukuma, ƙirƙirar fayil mai suna /etc/yum.repos.d/nginx.repo.

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

Ƙara layin masu zuwa zuwa fayil kamar yadda ake rarrabawa.

--------------- 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. Da zarar an ƙara nginx repo, zaku iya shigar da Nginx ta amfani da kayan aikin sarrafa fakitin yum kamar yadda aka nuna.

# yum install nginx

Mataki 3: Shigar da MariaDB Database Server

5. Don shigar da sabuwar sigar MariaDB, muna buƙatar ƙara ma'ajiyar MariaDB na hukuma, ƙirƙirar fayil mai suna /etc/yum.repos.d/mariadb.repo.

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

Ƙara layin masu zuwa zuwa fayil kamar yadda ake rarrabawa.

--------------- 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. Da zarar MariaDB repo aka kara, za ka iya shigar MariaDB ta amfani da yum kunshin sarrafa kayan aiki kamar yadda aka nuna.

# yum install MariaDB-client MariaDB-server

7. Bayan haka, amintaccen shigarwar uwar garken bayanai ta amfani da rubutun da ke ƙasa. Saita tushen kalmar sirri da amsa y sannan danna [Enter] don sauran tambayoyin da suka biyo baya don kashe tushen mai amfani mai nisa, cire asusun mai amfani da ba a san su ba da kuma gwada bayanan sirri wanda duk masu amfani za su iya shiga ta ta tsohuwa. , har ma da masu amfani da ba a san su ba.

# mysql_secure_installation

Mataki na 4: Shigar da Matsaloli da yawa na PHP

8. Don shigar da nau'ikan PHP daban-daban don ayyukanku, yi amfani da umarnin yum-config-manager don shigar da nau'ikan PHP da yawa tare da yawancin samfuran da ake buƙata kamar yadda aka nuna.

# 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. Da zarar an shigar da PHP, za ku iya amfani da umarni masu zuwa don duba tsohuwar sigar PHP da ake amfani da ita akan uwar garken ku.

# php -v

Mataki 5: Saita PHP-FPM da PHP56-PHP-FPM

10. Wannan shine bangare mafi ban sha'awa na wannan koyawa, yana bayyana yadda zaku iya aiwatar da nau'ikan PHP da yawa akan sabar ku. Anan, zaku saita nau'ikan php-fpm daban-daban waɗanda Nginx zasuyi aiki dasu. Ya kamata ku ayyana mai amfani/rukuni na hanyoyin FastCGI da kuma tashar jiragen ruwa da za su saurare su.

Waɗannan fayilolin sanyi guda biyu ne masu zuwa waɗanda za ku gyara.

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

Bude fayilolin da ke sama, saita mai amfani/rukuni na matakai na 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] 

Matsalolin tsoho yakamata su zama apache, canza su zuwa nginx kamar yadda aka nuna.

user = nginx
group = nginx

11. Na gaba, nemo sigogin saurare, kuma ayyana adireshin: tashar jiragen ruwa wanda za a karɓi buƙatun FastCGI.

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

12. Da zarar an gama duk saitunan da ke sama, kuna buƙatar farawa da kunna Nginx, MariaDB da PHP-FPM don farawa ta atomatik a 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 

Hankali: Idan kun sami wasu kurakurai yayin fara misali na biyu na PHP, php56-php-fpm, manufar SELinux na iya toshe shi daga farawa. Idan SELinux yana cikin yanayin tilastawa, saita shi zuwa yanayin izini, sannan gwada sake fara sabis ɗin.

# getenforce
# setenforce 0 

Mataki 6: Saita Yanar Gizo tare da Izini

13. A wannan gaba, yanzu zaku iya ƙirƙirar kundayen adireshi masu dacewa don rukunin yanar gizon ku a ƙarƙashin /var/www/html/. Hakanan kuna buƙatar ƙirƙirar kundayen adireshi don adana rajistan ayyukan kamar haka:

---------------- 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. Sanya izinin mallakar da ya dace akan duk kundayen adireshi.

---------------- 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/

Mataki 7: Saita Tubalan Sabar Nginx don Yanar Gizo

15. Yanzu saita yadda Nginx zai aiwatar da buƙatun zuwa gidajen yanar gizonku ta amfani da toshe fayilolin sanyi na uwar garken wanda yakamata a kasance a cikin /etc/nginx/conf.d/.

Ƙirƙiri fayilolin daidaitawa don gidajen yanar gizonku suna ƙarewa tare da tsawo .conf.

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

Sannan liƙa saitunan toshe uwar garken masu zuwa a cikin fayiloli daban-daban.

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. Tabbatar cewa kana da layin da ke gaba a cikin ɓangaren rufewa na http block a /etc/nginx/nginx.conf. Yana taimakawa don haɗa duk fayilolin sanyi a cikin /etc/nginx/conf.d/ directory lokacin da Nginx ke gudana.

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

Mataki na 8: Gwaji Daban-daban na PHP

17. A ƙarshe, kuna buƙatar gwada cewa uwar garken ku yana amfani da nau'ikan PHP guda biyu. Kuna iya ƙirƙirar rubutun info.php na asali a cikin tushen kundayen adireshi na gidajen yanar gizon ku kamar yadda aka nuna.

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

18. Don amfani da duk canje-canjen da kuka yi a sama, kuna buƙatar sake kunna Nginx, php-fpm da php56-php-fpm. Amma za ku iya da farko duba cewa fayilolin sanyi na Nginx don kowane kurakuran syntax kafin yin haka.

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

19. Akwai wani abu na ƙarshe da za ku yi, musamman idan kuna gudanar da uwar garken ku a gida, kuna buƙatar saita DNS na gida ta amfani da /etc/hosts file kamar yadda aka nuna a cikin hoton da ke ƙasa.

192.168.56.10   example1.com   example1
192.168.56.10   example2.com   example2

20. A ƙarshe, buɗe gidan yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizon yanar gizo da rubuta adiresoshin da ke gaba don tabbatar da nau'ikan PHP da aka sanya akan tsarin.

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

Shi ke nan! Yanzu zaku iya tura fayiloli da gwada gidajen yanar gizo tare da nau'ikan PHP daban-daban. Idan kuna da wasu ƙari don yin ko tambayoyin da za ku gabatar, yi amfani da fom ɗin sharhin da ke ƙasa.