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.
- RHEL 7 server minimaalse installiga.
- Nginxi HTTP-server.
- PHP 7.1 (kasutatakse vaikeversioonina) ja 5.6.
- MariaDB andmebaasiserver.
- Serveri IP-aadress: 192.168.56.10.
- 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.