Jak uruchamiać wiele stron z różnymi wersjami PHP w Nginx
- 4407
- 357
- Roland Sokół
Czasami programiści PHP chcą budować i uruchamiać różne strony internetowe/aplikacje za pomocą różnych wersji PHP na tym samym serwerze WWW. Jako administrator systemu Linux, musisz skonfigurować środowisko, w którym możesz uruchamiać wiele stron internetowych za pomocą różnych wersji PHP na jednym serwerze WWW i.mi. Nginx.
W tym samouczku wyjaśnimy, jak zainstalować wiele wersji Php i skonfiguruj serwer WWW Nginx pracować z nimi za pośrednictwem bloków serwerów (wirtualne hosty w Apache) w Centos/Rhel 7 rozkłady za pomocą LEMP stos.
Przeczytaj także: Pyenv - Zainstaluj wiele wersji Pythona dla określonego projektu
Nginx zastosowania PHP-FPM (oznacza FastCGI Process Manager), która jest alternatywą PHP Fastcgi Wdrożenie z dodatkowymi, przydatnymi funkcjami dla mocno załadowanych stron internetowych.
Konfiguracja środowiska testowego
- Serwer Centos 7 lub Rhel 7 z minimalną instalacją.
- Serwer Nginx HTTP.
- PHP 7.1 (do wersji domyślnej) i 5.6.
- Serwer bazy danych Mariadb.
- Adres IP serwera: 192.168.56.10.
- Strony internetowe: Przykład 1.com I Przykład2.com.
Krok 1: Instalowanie i włączanie repozytorium EPEL i REMI
1. Pierwszy zacznij od zainstalowania i włączenia Epel I Remi Repozytorium, które oferuje najnowsze wersje Php Ułóż dalej Centos/Rhel 7 rozkłady.
# Yum Zainstaluj https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-7.Noarch.RPM # Yum Instaluj http: // RPM.remirepo.Net/Enterprise/Remi-Rulease-7.RPM
2. Następnie zainstaluj Yum-Utils pakiet, który rozszerza natywne funkcje Yum i zapewnia Yum-Config-Manager polecenie, które służy do włączenia lub wyłączania repozytoriów Yum w systemie.
# mniam instaluj yum-utils
Notatka: NA RHEL 7 Możesz włączyć opcjonalny kanał dla niektórych zależności za pomocą następującego polecenia.
# Repos subskrypcji-manager -enable = RHEL-7-SERVER-OPTIONAL-RPMS
Krok 2: Instalowanie serwera WWW Nginx
3. Aby zainstalować najnowszą wersję Nginx, musimy dodać oficjalne repozytorium Nginx, utwórz plik o nazwie /etc/mniam.repozytorium.D/nginx.Repo.
# vi /etc /yum.repozytorium.D/nginx.Repo
Dodaj następujące wiersze do pliku zgodnie z dystrybucją.
--------------- Na Centos 7 --------------- [nginx] nazwa = nginx repo baseurl = http: // nginx.org/pakiety/centos/7/$ basearch/gpgCheck = 0 włączony = 1 --------------- Na Rhel 7 --------------- [nginx] nazwa = nginx repo baseurl = http: // nginx.org/pakiety/RHEL/7.x/ $ basearch/ gpgcheck = 0 włączony = 1
4. Po dodaniu Nginx repozytor.
# mniam instaluj nginx
Krok 3: Instalowanie serwera bazy danych Mariadb
5. Aby zainstalować najnowszą wersję MariaDB, musimy dodać oficjalne repozytorium MariaDB, utwórz plik o nazwie /etc/mniam.repozytorium.D/Mariadb.Repo.
# vi /etc /yum.repozytorium.D/Mariadb.Repo
Dodaj następujące wiersze do pliku zgodnie z dystrybucją.
--------------- Na Centos 7 --------------- [mariadb] nazwa = mariadb baseurl = http: // yum.Mariadb.Org/10.2/centos7-amd64 gpgkey = https: // yum.Mariadb.ORG/RPM-GPG-KEY-MARIADB GPGCheck = 1 --------------- Na Rhel 7 --------------- [mariadb] nazwa = mariadb baseurl = http: // yum.Mariadb.Org/10.2/RHEL7-AMD64 GPGKEY = https: // yum.Mariadb.ORG/RPM-GPG-KEY-MARIADB GPGCheck = 1
6. Po dodaniu repozytorium MariaDB możesz zainstalować Mariadb za pomocą narzędzia Yum Pack Manager, jak pokazano.
# Yum Zainstaluj mariadb-client mariadb-server
7. Następnie zabezpiecz instalację serwera bazy danych za pomocą poniższego skryptu. Ustaw hasło roota i odpowiedz y
i naciśnij [Wchodzić] W reszcie kolejnych pytań, aby wyłączyć zdalny login użytkownika root, usuń konta anonimowego użytkownika i bazę danych testowych, do których domyślnie mogą uzyskać dostęp do wszystkich użytkowników, nawet anonimowych użytkowników.
# mysql_secure_instalation
Przeczytaj także: 12 Mysql/MariaDB Security Best Practices for Linux
Krok 4: Instalowanie wielu wersji PHP
8. Aby zainstalować różne wersje PHP dla swoich projektów, użyj Yum-Config-Manager polecenie do zainstalowania wielu wersji PHP wraz z najbardziej wymaganymi modułami, jak pokazano.
Zainstaluj PHP 7.1 wersja
# Yum-Config-Manager-Ustawa REMI-PHP71 [Domyślnie] # Yum Instal Php-common php-fpm # yum instaluj 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
Zainstaluj PHP 5.6 wersja
# Yum Instaluj PHP56 PHP56-PHP-COMMON PHP56-PHP-FPM # Yum Instaluj 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. Po zainstalowaniu PHP możesz użyć następującego polecenia, aby sprawdzić domyślną wersję PHP używaną na serwerze.
# php -vSprawdź domyślną wersję PHP
Krok 5: Konfigurowanie PHP-FPM i PHP56-PHP-FPM
10. To najciekawsza część tego samouczka, wyjaśnia, w jaki sposób możesz uruchomić wiele wersji PHP na serwerze. Tutaj skonfigurujesz różne wersje PHP-FPM że Nginx będzie współpracować. Powinieneś zdefiniować użytkownika/grupę procesów FASTCGI, a także porty, na których będą słuchać.
Są to następujące dwa pliki konfiguracyjne, które zamierzasz edytować.
- PHP-FPM (Domyślnie 7.1) - /etc /php -fpm.D/www.conf
- PHP56-PHP-FPM - /opt/remi/php56/root/etc/php-fpm.D/www.conf
Otwórz powyższe pliki, ustaw użytkownik/grupę procesów 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]
Wartości domyślne powinny być Apache, Zmień je na nginx jak pokazano.
użytkownik = grupa nginx = nginx
11. Następnie znajdź parametry słuchania i zdefiniuj Adres: Port na które zostaną odebrane żądania FASTCGI.
Słuchaj = 127.0.0.1: 9000 [php-fpm] słuchaj = 127.0.0.1: 9001 [php56-php-fpm]
12. Po zakończeniu całej powyższej konfiguracji musisz uruchomić i włączyć Nginx, Mariadb I PHP-FPM Aby automatycznie startować w systemie.
# Systemctl Włącz Nginx # Systemctl Start Nginx # Systemctl Włącz MARIADB # Systemctl Start MariaDB ---------------- PHP 7.1 ---------------- # Systemctl Włącz php-fpm # Systemctl start php-fpm ---------------- PHP 5.6 ---------------- # Systemctl Włącz php56-php-fpm # Systemctl start php56-php-fpm
Uwaga: W przypadku, gdy otrzymasz błędy podczas rozpoczęcia drugiej instancji PHP, PHP56-PHP-FPM, Polityka Selinux może blokować ją od uruchomienia. Jeśli Selinux jest w środku Tryb egzekwowania, ustaw to tryb dopuszczalny, Następnie spróbuj ponownie uruchomić usługę.
# getenforce # setenforce 0
Krok 6: Skonfiguruj strony internetowe z uprawnieniami
13. W tym momencie możesz teraz stworzyć niezbędne katalogi dla swoich stron internetowych /var/www/html/. Musisz także tworzyć katalogi do przechowywania dzienników w następujący sposób:
---------------- Strona internetowa 1 ---------------- # mkdir -p/var/www/html/example1.com/ # mkdir -p/var/log/nginx/example1.com/ ---------------- Strona internetowa 2 ---------------- # mkdir -p/var/www/html/example2.com/ # mkdir -p/var/log/nginx/example2.com/
14. Ustaw odpowiednie uprawnienia do własności we wszystkich katalogach.
---------------- Strona internetowa 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/ ---------------- Strona internetowa 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/
Krok 7: Ustaw bloki serwera Nginx dla stron internetowych
15. Teraz skonfiguruj, w jaki sposób Nginx przetwarza żądania na twoich stronach internetowych za pomocą plików konfiguracyjnych bloku serwera, które powinny być zlokalizowane /etc/nginx/conf.D/.
Utwórz pliki konfiguracyjne dla swoich stron internetowych kończących .conf
rozszerzenie.
# vi/etc/nginx/conf.d/przykład1.com.conf # vi/etc/nginx/conf.d/przykład2.com.conf
Następnie wklej następujące konfiguracje bloku serwera w odpowiednich plikach.
Strona internetowa 1
Konfiguracja na przykład1.comserwer Słuchaj 80; Server_name Przykład 1.com www.Przykład 1.com; root/var/www/html/example1.com/; indeks indeksu.Wskaźnik PHP.Indeks HTML.HTM; #Carset Koi8-R; access_log/var/log/nginx/example1.com/example1_access_log; error_log/var/log/nginx/example1.com/example1_error_log błąd; lokalizacja / try_files $ URI $ URI / / Index.php?$ query_string; # Przekaż skrypty PHP do serwera FastCGI słuchania w 127.0.0.Lokalizacja 1: 9000 ~ \.php $ root/var/www/html/example1.com/; fastcgi_pass 127.0.0.1: 9000; #Set Port dla PHP-FPM do słuchania w indeksie FastCGI_Index.php; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; Dołącz fastcgi_params; obejmują/etc/nginx/fastcgi_params;
Strona internetowa 2
Konfiguracja na przykład2.comserwer Słuchaj 80; Server_name Przykład 2.com www.Przykład2.com; root/var/www/html/example2.com/; indeks indeksu.Wskaźnik PHP.Indeks HTML.HTM; #Carset Koi8-R; access_log/var/log/nginx/example2.com/example2_access_log; error_log/var/log/nginx/example2.com/example2_error_log błąd; lokalizacja / try_files $ URI $ URI / / Index.php?$ query_string; # Przekaż skrypty PHP do serwera FastCGI słuchania w 127.0.0.Lokalizacja 1: 9000 ~ \.php $ root/var/www/html/example2.com/; fastcgi_pass 127.0.0.1: 9001; #Set Port dla php56-php-fpm do słuchania w indeksie fastcgi_index.php; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; Dołącz fastcgi_params; obejmują/etc/nginx/fastcgi_params;
16. Upewnij się, że masz następującą linię w części zamykającej bloku HTTP /etc/nginx/nginx.conf. Pomaga uwzględnić wszystkie pliki konfiguracyjne wewnątrz /etc/nginx/conf.D/ katalog, gdy Nginx działa.
obejmują/etc/nginx/conf.D/*.conf;
Krok 8: Testowanie różnych wersji PHP
17. Na koniec musisz przetestować, że Twój serwer używa dwóch wersji PHP. Możesz stworzyć bardzo podstawowy informacje.php skrypt w dokumentach głównych katalogów twoich stron internetowych, jak pokazano.
# echo "">/var/www/html/example1.com/info.php # echo "">/var/www/html/example2.com/info.php
18. Aby zastosować wszystkie zmiany, które dokonałeś powyżej, musisz ponownie uruchomić Nginx, PHP-FPM I PHP56-PHP-FPM. Ale przede wszystkim możesz sprawdzić, czy pliki konfiguracyjne Nginx dla wszelkich błędów składniowych.
# nginx -t # Systemctl restart nginx php-fpm php56-php-fpmSprawdź konfigurację Nginx
19. Jest jeszcze jedna ostatnia rzecz do zrobienia, zwłaszcza jeśli używasz serwera lokalnie, musisz skonfigurować lokalne DN za pomocą /etc/hosts Plik, jak pokazano w zrzucie ekranu poniżej.
192.168.56.10 Przykład 1.Com Przykład 1 192.168.56.10 Przykład2.com przykład2Dodaj strony internetowe do pliku Hosts
20. Na koniec otwórz przeglądarkę internetową i wpisz następujące adresy, aby zweryfikować wersje PHP zainstalowane w systemie.
http: // przykład1.com/indeks.php http: // przykład2.com/indeks.phpSprawdź PHP 7.1 wersja Sprawdź PHP 5.6 wersja
Otóż to! Teraz możesz wdrażać pliki i testować strony internetowe z różnymi wersjami PHP. Jeśli masz jakieś dodatki lub pytania, skorzystaj z poniższego formularza komentarza.
- « HTTPIE - nowoczesny klient HTTP podobny do poleceń Curl i WGET
- Jak zamontować partycje Windows w Ubuntu »