Jak zainstalować wiele wersji PHP z Nginx na Ubuntu 18.04 i 16.04

Jak zainstalować wiele wersji PHP z Nginx na Ubuntu 18.04 i 16.04

Zasadniczo menedżer hostingowy używał osobnego serwera dla każdego wdrożenia aplikacji wersji PHP. Co zwiększa koszty hostingu. Alternatywnie możesz uruchomić wiele kontenerów Docker dla wielu wersji PHP.

Ten samouczek pomaga w instalacji i konfiguracji dwóch wirtualhost na serwerze WWW Nginx z różnymi wersjami PHP. Pierwszy VirtualHost będzie działał z PHP 5.6 i kolejny wirtualhost będzie działał z PHP 7.2. Więc po prostu przejdź przez ten samouczek. Możesz także użyć więcej niż dwóch wersji PHP z Nginx zgodnie z wymaganiami, ale ten samouczek obejmuje tylko dwa.

Instalacja PHP

Do instalacji wersji PHP używamy TUTAJ PPA. Użyj poniższych kilku poleceń, aby dodać PPA do swojego systemu.

sudo apt instal Python-Sofware-Properties sudo add-aPappository pPA: ondrej/php 

Do tego samouczka użyłem PHP 5.6 i PHP 7.2 Aby skonfigurować go z serwerem WWW Nginx. Aby użyć wielu wersji PHP, użyjemy PHP FPM i FASTCGI. Zainstalujmy następujące pakiety w systemie.

APT Aktualizacja sudo apt instal PHP5.6 php5.6-fpm sudo apt instaluj php7.2 php7.2-fpm 

Może być również konieczne zainstalowanie dodatkowych modułów PHP. W samouczku wymagane są tylko powyższe pakiety.

Po instalacji usługi PHP-FPM zostaną uruchomione automatycznie. Użyj następujących poleceń, aby upewnić się, że obie usługi są uruchomione.

SUDO SystemCTL Status PHP5.6-FPM SUDO SystemCTL Status PHP7.2-fpm 
  • Zalecane: Jak włączyć/wyłączyć moduły PHP na Ubuntu

Instalacja Nginx

Serwer WWW Nginx to pakiety są dostępne w oficjalnym repozytorium Ubuntu. Uruchom terminal w systemie lub zaloguj się z SSH dla zdalnych systemów. Wykonaj następujące polecenia, aby zainstalować najnowszą dostępną wersję serwera WWW Nginx.

sudo apt aktualizacja sudo apt instal nginx 

Konfiguracja Nginx

Przygotuj się do konfiguracji stron internetowych na serwerze Nginx. W celu testowania konfiguruję dwie strony internetowe do pracy z dwiema różnymi wersjami PHP. Najpierw utwórz dwa katalogi na swoim serwerze.

sudo mkdir/var/www/php56 sudo mkdir/var/www/php72 

Teraz stwórz i indeks.php zawierający phpinfo () funkcjonować.

echo "">/var/www/php56/indeks.php echo "">/var/www/php72/indeks.php 

Następnie utwórz bloki serwerowe dla obu witryn na Nginx. Najnowsza wersja Nginx utrzymuje pliki konfiguracyjne bloku serwera w katalogu dostępnego. Utwórz plik dla pierwszego wirtualnego hosta i edytuj w swoim ulubionym edytorze tekstu.

sudo vim/etc/nginx/witryny-dostępny/php56.przykład.com 

Dodaj następującą zawartość. Użyj poprawnej ścieżki Servername i Directory zgodnie z konfiguracją. Ta strona jest skonfigurowana do pracy z PHP 5.6.

# Aplikacja z PHP 5.6 # serwer Słuchaj 80; root/var/www/php56; indeks indeksu.php; Server_name PHP56.przykład.com; Lokalizacja ~* \.php $  # z PHP-FPM UNIX Sockets Fastcgi_pass UNIX:/var/run/php/php5.6-fpm.skarpetka; Dołącz fastcgi_params; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

Podobnie utwórz drugi plik konfiguracyjny VirtualHost do pracy z PHP 7.2. Edytuj plik konfiguracyjny w edytorze tekstu:

sudo vim/etc/nginx/witryny-dostępny/php72.przykład.com 

Dodaj następującą zawartość do pliku za pomocą odpowiedniej nazwy Servern i DocumentRoot.

# Aplikacja z PHP 7.2 # serwer Słuchaj 80; root/var/www/php72; indeks indeksu.php; Server_name PHP72.przykład.com; Lokalizacja ~* \.php $  # z PHP-FPM UNIX Sockets Fastcgi_pass UNIX:/var/run/php/php7.2-fpm.skarpetka; Dołącz fastcgi_params; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

W porządku, utworzyłeś obie strony internetowe w swoim nginx. Ale nadal nie są aktywni. Nginx przechowuje aktywne strony w katalogu/etc/nignx/witryny. Możesz po prostu utworzyć link symboliczny dla obu plików konfiguracyjnych do tego katalogu lub użyć poniższego polecenia, aby zrobić to samo.

sudo ln -s/etc/nginx/witryny -dostępny/php56.przykład.com/etc/nginx/witryny-obsługujący/sudo ln -s/etc/nginx/witryny-dostępny/php72.przykład.com/etc/nginx/witryny/obsługę/ 

Po dokonaniu wszystkich zmian uruchom ponownie Nginx w celu ponownego załadowania nowych zmian.

sudo systemctl restart nginx.praca 

Twoja konfiguracja została już zakończona. Przejdź do następnego kroku, aby przetestować konfigurację.

Konfiguracja testowa

Wszystkie zrobione. Możesz uzyskać dostęp do obu witryn w swojej favirote internetowej przeglądarce . Zobaczysz to php56.przykład.com pokazuje wersję PHP 5.6 I php72.przykład.com pokazuje PHP 7.2 jako konfiguracja.

Gratulacje, Twój system jest gotowy do prowadzenia stron internetowych z różnymi wersjami PHP. Szczęśliwy hosting.