Wéi lafen verschidde Websäite mat verschiddene PHP Versiounen an Nginx
Heiansdo wëllen PHP Entwéckler verschidde Websäiten/Uwendungen bauen a lafen mat verschiddene Versioune vu PHP um selwechte Webserver. Als Linux System Administrateur sidd Dir verlaangt en Ëmfeld opzestellen wou Dir verschidde Websäite mat enger anerer PHP Versioun op engem eenzege Webserver dh Nginx lafen kënnt.
An dësem Tutorial erkläre mir Iech wéi Dir verschidde Versioune vu PHP installéiere kënnt an de Webserver Nginx konfiguréieren fir mat hinnen iwwer d'Serverblocken (virtuell Hosten an Apache) an CentOS/RHEL 7 Verdeelungen mat LEMP Stack ze schaffen.
Nginx benotzt PHP-FPM (steet fir FastCGI Process Manager), wat eng alternativ PHP FastCGI Implementatioun ass mat e puer extra, nëtzlech Funktiounen fir schwéier gelueden Websäiten.
- E RHEL 7 Server mat minimaler Installatioun.
- Nginx HTTP Server.
- PHP 7.1 (fir als Standardversioun ze benotzen) an 5.6.
- MariaDB Datebank Server.
- Server IP Adress: 192.168.56.10.
- Websäiten: example1.com an example2.com.
Schrëtt 1: Installéieren an aktivéieren EPEL a Remi Repository
1. Start fir d'éischt andeems Dir den EPEL- a Remi-Repository installéiert an aktivéiert, deen déi lescht Versioune vum PHP-Stack op CentOS/RHEL 7 Verdeelungen ubitt.
# 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. Installéiert dann de yum-utils Package, deen d'native Funktionalitéite vun yum erweidert a yum-config-manager Kommando ubitt, wat benotzt gëtt fir Yum Repositories um System z'aktivéieren oder auszeschalten.
# yum install yum-utils
Bemierkung: Op RHEL 7 kënnt Dir den optionalen Kanal fir e puer Ofhängegkeeten aktivéieren andeems Dir de folgende Kommando benotzt.
# subscription-manager repos --enable=rhel-7-server-optional-rpms
Schrëtt 2: Nginx Web Server installéieren
3. Fir déi lescht Versioun vum Nginx z'installéieren, musse mir den offiziellen Nginx Repository addéieren, eng Datei erstellen /etc/yum.repos.d/nginx.repo.
# vi /etc/yum.repos.d/nginx.repo
Füügt déi folgend Zeilen un der Datei no Ärer Verdeelung.
--------------- 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. Wann nginx repo dobäigesat gouf, kënnt Dir Nginx installéieren mat yum Package Manager Tool wéi gewisen.
# yum install nginx
Schrëtt 3: MariaDB Datebank Server installéieren
5. Fir déi lescht Versioun vu MariaDB z'installéieren, musse mir den offiziellen MariaDB Repository addéieren, eng Datei erstellen /etc/yum.repos.d/mariadb.repo.
# vi /etc/yum.repos.d/mariadb.repo
Füügt déi folgend Zeilen un der Datei no Ärer Verdeelung.
--------------- 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. Wann d'MariaDB-Repo hinzugefügt gouf, kënnt Dir MariaDB mat yum Package Manager-Tool installéieren wéi se gewisen.
# yum install MariaDB-client MariaDB-server
7. Duerno sécher d'Datebankserverinstallatioun mat dem Skript hei drënner. Setzt e Root-Passwuert an äntwert y
an dréckt op [Enter] fir de Rescht vun de folgende Froen fir de Remote Root Benotzer Login auszeschalten, anonyme Benotzerkonten an Testdatenbank ze läschen, déi als Standard vun all Benotzer zougänglech sinn. , souguer anonym Benotzer.
# mysql_secure_installation
Schrëtt 4: Multiple Versioune vu PHP installéieren
8. Fir verschidde Versioune vu PHP fir Är Projeten z'installéieren, benotzt yum-config-manager Kommando fir verschidde Versioune vu PHP ze installéieren zesumme mat de meescht erfuerderlech Moduler wéi gewisen.
# 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. Wann Dir PHP installéiert hutt, kënnt Dir folgend Kommando benotzen fir d'Standardversioun vu PHP op Ärem Server ze kontrolléieren.
# php -v
Schrëtt 5: PHP-FPM a PHP56-PHP-FPM konfiguréieren
10. Dëst ass den interessantsten Deel vun dësem Tutorial, et erklärt wéi Dir tatsächlech verschidde PHP Versiounen op Ärem Server lafen kann. Hei wäert Dir déi verschidde Versioune vu php-fpm konfiguréieren, mat deenen Nginx funktionnéiert. Dir sollt de Benotzer/Grupp vun de FastCGI Prozesser definéieren wéi och d'Ports op déi se nolauschteren.
Dëst sinn déi folgend zwou Konfiguratiounsdateien déi Dir wäert änneren.
- php-fpm (Standard 7.1) – /etc/php-fpm.d/www.conf
- php56-php-fpm – /opt/remi/php56/root/etc/php-fpm.d/www.conf
Öffnen d'Fichier'en uewen, set de Benotzer/Grupp vu FastCGI Prozesser.
# vi /etc/php-fpm.d/www.conf [PHP 7.1] # vi /opt/remi/php56/root/etc/php-fpm.d/www.conf [PHP 5.6]
D'Default Wäerter sollen Apache sinn, änneren se op nginx wéi gewisen.
user = nginx group = nginx
11. Als nächst fannt Dir d'Lauschterparameter, an definéiert d'Adress:port op deem FastCGI Ufroe kritt ginn.
listen = 127.0.0.1:9000 [php-fpm] listen = 127.0.0.1:9001 [php56-php-fpm]
12. Wann all déi uewe genannte Konfiguratioun gemaach ass, musst Dir Nginx, MariaDB a PHP-FPM starten an aktivéieren fir automatesch beim Systemboot ze starten.
# 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
Opgepasst: Am Fall wou Dir Feeler kritt beim Start vun der zweeter Instanz vu PHP, php56-php-fpm, kann eng SELinux Politik et blockéieren fir ze starten. Wann SELinux am Duerchféierungsmodus ass, setzt se op de permissive Modus, da probéiert de Service nach eng Kéier unzefänken.
# getenforce # setenforce 0
Schrëtt 6: Setup Websäite mat Permissiounen
13. Zu dësem Zäitpunkt kënnt Dir elo déi néideg Verzeichnisser fir Är Websäiten ënner /var/www/html/ erstellen. Dir musst och Verzeechnes erstellen fir Logbicher wéi follegt ze späicheren:
---------------- 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. Setzt déi entspriechend Eegentumsrechter op all Verzeichnisser.
---------------- 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/
Schrëtt 7: Setup Nginx Server Blocks fir Websäiten
15. Elo konfiguréieren wéi Nginx Ufroe fir Är Websäite veraarbecht mat de Serverblock Konfiguratiounsdateien déi an /etc/nginx/conf.d/ solle lokaliséiert sinn.
Erstellt d'Konfiguratiounsdateien fir Är Websäiten déi mat .conf
Extensioun enden.
# vi /etc/nginx/conf.d/example1.com.conf # vi /etc/nginx/conf.d/example2.com.conf
Paste dann déi folgend Serverblockkonfiguratiounen an déi jeeweileg Dateien.
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. Vergewëssert Iech datt Dir déi folgend Zeil am Ofschlossdeel vum http Block an /etc/nginx/nginx.conf hutt. Et hëlleft fir all Konfiguratiounsdateien am /etc/nginx/conf.d/ Verzeichnis opzehuelen wann Nginx leeft.
include /etc/nginx/conf.d/*.conf;
Schrëtt 8: Testen Verschidde PHP Versiounen
17. Endlech musst Dir testen datt Äre Server déi zwou Versioune vu PHP benotzt. Dir kënnt e ganz Basis info.php Skript erstellen an den Dokumentroot Verzeechnes vun Äre Websäiten wéi gewisen.
# echo "<?php phpinfo(); ?>" > /var/www/html/example1.com/info.php # echo "<?php phpinfo(); ?>" > /var/www/html/example2.com/info.php
18. Fir all d'Ännerungen ze gëllen déi Dir uewen gemaach hutt, musst Dir Nginx, php-fpm an php56-php-fpm nei starten. Awer Dir kënnt als éischt kontrolléieren datt d'Nginx Konfiguratiounsdateien fir all Syntaxfehler ier Dir dëst maacht.
# nginx -t # systemctl restart nginx php-fpm php56-php-fpm
19. Et gëtt eng aner lescht Saach ze maachen, besonnesch wann Dir Äre Server lokal leeft, musst Dir lokal DNS mat /etc/hosts-Datei opbauen wéi am Bildschierm hei ënnendrënner.
192.168.56.10 example1.com example1 192.168.56.10 example2.com example2
20. Endlech, öffnen e Webbrowser a gitt déi folgend Adressen fir d'Versioune vu PHP déi um System installéiert sinn z'iwwerpréiwen.
http://example1.com/index.php http://example2.com/index.php
Dat ass et! Elo kënnt Dir Dateien ofsetzen an Websäite mat verschiddene PHP Versiounen testen. Wann Dir Ergänzunge hutt fir ze maachen oder Froen ze stellen, benotzt de Kommentarformular hei ënnen.