Kuidas käivitada mitut PHP-versiooniga veebisaiti Nginxis


Mõnikord soovivad PHP arendajad luua ja käitada erinevaid veebisaite/rakendusi, kasutades samas veebiserveris PHP erinevaid versioone. Linuxi süsteemiadministraatorina peate seadistama keskkonna, kus saate ühes veebiserveris, st Nginxis, käitada mitut veebisaiti, kasutades erinevat PHP-versiooni.

Selles õpetuses selgitame teile, kuidas installida mitu PHP versiooni ja konfigureerida veebiserver Nginx töötama nendega serveriplokkide (Apache virtuaalsed hostid) kaudu CentOS/RHEL 7 jaotustes LEMP-i virna abil.

Nginx kasutab PHP-FPM-i (tähistab FastCGI protsessihaldurit), mis on alternatiivne PHP FastCGI-juurutus, millel on mõned kasulikud funktsioonid tugevalt koormatud veebisaitide jaoks.

  1. RHEL 7 server minimaalse installiga.
  2. Nginxi HTTP-server.
  3. PHP 7.1 (kasutatakse vaikeversioonina) ja 5.6.
  4. MariaDB andmebaasiserver.
  5. Serveri IP-aadress: 192.168.56.10.
  6. Veebisaidid: example1.com ja example2.com.

1. samm: EPEL-i ja Remi hoidla installimine ja lubamine

1. Esmalt installige ja lubage EPEL ja Remi hoidla, mis pakub PHOS-i virna uusimaid versioone CentOS/RHEL 7 jaotustes.

# 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. Järgmisena installige pakett yum-utils, mis laiendab yumi loomulikke funktsioone ja pakub käsku yum-config-manager, mida kasutatakse Yumi hoidlate lubamiseks või keelamiseks süsteemis.

# yum install yum-utils

Märkus. RHEL 7-s saate järgmise käsu abil lubada mõne sõltuvuse jaoks valikulise kanali.

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

2. samm: Nginxi veebiserveri installimine

3. Nginxi uusima versiooni installimiseks peame lisama ametliku Nginxi hoidla, looma faili nimega /etc/yum.repos.d/nginx.repo.

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

Lisage järgmised jaotised faili vastavalt levitamisele.

--------------- 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. Kui nginxi repo on lisatud, saate Nginxi installida yumi paketihalduri tööriista abil, nagu näidatud.

# yum install nginx

3. samm: MariaDB andmebaasiserveri installimine

5. MariaDB uusima versiooni installimiseks peame lisama ametliku MariaDB hoidla, looma faili nimega /etc/yum.repos.d/mariadb.repo.

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

Lisage järgmised jaotised faili vastavalt levitamisele.

--------------- 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. Kui MariaDB repo on lisatud, saate MariaDB installida yumi paketihalduri tööriista abil, nagu näidatud.

# yum install MariaDB-client MariaDB-server

7. Seejärel kindlustage andmebaasiserveri installimine alloleva skripti abil. Määrake juurparool ja vastake y ning vajutage ülejäänud järgnevate küsimuste jaoks [Enter], et keelata juurjuure sisselogimine, eemaldada anonüümsete kasutajakontod ja testida andmebaasi, millele vaikimisi pääsevad juurde kõik kasutajad , isegi anonüümsed kasutajad.

# mysql_secure_installation

4. samm: PHP mitme versiooni installimine

8. Projektide PHP erinevate versioonide installimiseks kasutage käsku yum-config-manager, et installida mitu PHP versiooni koos kõige vajalikumate moodulitega, nagu näidatud.

# 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. Kui PHP on installitud, saate kasutada järgmist käsku, et kontrollida oma serveris kasutatava PHP vaikeversiooni.

# php -v

5. samm: PHP-FPM ja PHP56-PHP-FPM konfigureerimine

10. See on selle õpetuse kõige huvitavam osa, see selgitab, kuidas saate oma serveris tegelikult käitada mitut PHP versiooni. Siin saate konfigureerida php-fpm erinevad versioonid, millega Nginx töötab. Peaksite määratlema FastCGI protsesside kasutaja/grupi ja ka portid, mida nad kuulavad.

Need on järgmised kaks konfiguratsioonifaili, mida kavatsete muuta.

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

Avage ülaltoodud failid, määrake FastCGI protsesside kasutaja/rühm.

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

Vaikeväärtused peaksid olema apache, muutke need nginxiks, nagu näidatud.

user = nginx
group = nginx

11. Järgmisena leidke kuulamisparameetrid ja määrake aadress: port, kuhu FastCGI päringud vastu võetakse.

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

12. Kui kõik ülaltoodud seadistused on tehtud, peate käivitama ja lubama Nginxi, MariaDB ja PHP-FPM-i automaatselt käivitada süsteemi käivitamisel.

# 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 

Tähelepanu: Kui teil tekib PHP teise eksemplari php56-php-fpm käivitamisel vigu, võib SELinuksi poliitika selle käivitamise blokeerida. Kui SELinux on jõustamisrežiimis, seadke see lubavale režiimile ja proovige siis teenust uuesti käivitada.

# getenforce
# setenforce 0 

6. samm: seadistage lubadega veebisaidid

13. Siinkohal saate nüüd luua oma veebisaitidele vajalikud kataloogid kataloogis/var/www/html /. Logide salvestamiseks peate looma ka kataloogid järgmiselt:

---------------- 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. Määrake kõigile kataloogidele sobivad omandiõigused.

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

7. samm: seadistage Nginxi serverblokid veebisaitidele

15. Nüüd konfigureerige, kuidas Nginx teie veebisaitidele päringuid töötleb, kasutades serveriploki konfiguratsioonifaile, mis peaksid asuma kataloogis /etc/nginx/conf.d/.

Looge oma veebisaitide konfiguratsioonifailid, mis lõpevad laiendiga .conf .

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

Seejärel kleepige järgmised serveriplokkide konfiguratsioonid vastavatesse failidesse.

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. Veenduge, et teil oleks järgmine rida faili /etc/nginx/nginx.conf http-ploki lõpus. Kui Nginx töötab, aitab see lisada kõik konfiguratsioonifailid kataloogi /etc/nginx/conf.d/.

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

8. samm: erinevate PHP-versioonide testimine

17. Lõpuks peate testima, kas teie server kasutab PHP kahte versiooni. Oma veebisaitide dokumendi juurkataloogides saate luua väga lihtsa skripti info.php, nagu näidatud.

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

18. Kõigi ülaltoodud muudatuste rakendamiseks peate taaskäivitama Nginxi, php-fpm ja php56-php-fpm. Kuid kõigepealt saate enne seda kontrollida, kas Nginxi konfiguratsioonifailides pole süntaksi vigu.

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

19. On veel üks viimane asi, mida teha, eriti kui kasutate oma serverit kohalikult, peate kohaliku DNS-i seadistama faili/etc/hosts abil, nagu on näidatud allpool asuvas ekraanipildis.

192.168.56.10   example1.com   example1
192.168.56.10   example2.com   example2

20. Lõpuks avage veebibrauser ja tippige järgmised aadressid, et kontrollida süsteemi installitud PHP versioone.

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

See on kõik! Nüüd saate faile juurutada ja testida erinevate PHP versioonidega veebisaite. Kui teil on täiendusi või küsimusi, kasutage allolevat kommentaarivormi.