Jak zainstalować wiele wersji PHP z Apache na Ubuntu 20.04

Jak zainstalować wiele wersji PHP z Apache na Ubuntu 20.04

Zasadniczo menedżer hosta używał osobnego serwera dla każdego wdrożenia aplikacji wersji PHP. Co zwiększa koszty hostingu. Niektórzy menedżerowie hosta używają Docker do uruchamiania wielu wersji PHP na jednym serwerze. Ponadto większość z was jest świadoma konfiguracji, użyłem w tym samouczku. Ale niektórzy administratorzy systemu nie są tego świadomi. Ten samouczek pomoże Ci zainstalować wiele wersji PHP z Apache na Ubuntu 20.04 system Linux bez przełączania wersji PHP.

Ten samouczek opisuje instalację i konfigurację dwóch wirtualHost na Apache z osobnymi 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 Apache zgodnie z wymaganiami, ale ten samouczek obejmuje tylko dwa.

Instalowanie Apache

Pakiety serwera internetowego Apache są dostępne w ramach domyślnych repozytoriów. Otwórz terminal w systemie Ubuntu, a następnie wykonaj następujące polecenia, aby zainstalować najnowszą dostępną wersję Apache Web Server.

sudo apt aktualizacja sudo appt instalacja apache2 libapache2-mod-fcgid 

Instalowanie PHP

PPA jest prowadzony do instalacji PHP w systemach Ubuntu od długich lat. Musisz tylko dodać ten PPA do swojego systemu, aby zainstalować pakiety. Użyj poniższych kilku poleceń, aby dodać PPA do swojego systemu.

sudo apt instal oprogramowanie-properties-common sudo add-aTap-repozytory PPA: ondrej/php 

W tym samouczku używamy PHP 5.6 i PHP 7.4 Aby skonfigurować z serwerem WWW Apache. Aby użyć wielu wersji PHP, użyjemy PHP FPM i FASTCGI. Zainstalujmy następujące pakiety w systemie.

sudo apt aktualizacja -y sudo apt instal PHP5.6 php5.6 -fpm -y sudo apt instal PHP7.4 php7.4 -fpm -y 

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.4-fpm 
  • Zalecane: Jak włączyć/wyłączyć moduły PHP na Ubuntu

Skonfiguruj Apache z wieloma PHP

Teraz włącz kilka modułów wymaganych do konfiguracji wielu wersji PHP z Apache. Te moduły są niezbędne do zintegrowania PHP FPM i FASTCGI z serwerem Apache.

sudo a2enmod działania fcgid alias proxy_fcgi 

Przygotuj się do konfiguracji stron internetowych na serwerze Apache. 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-app sudo mkdir/var/www/php74-app 

Teraz utwórz i indeks.PHP zawierający phpinfo (); funkcjonować.

echo "">/var/www/php56-app/indeks.php echo "">/var/www/php74-app/indeks.php 

Zacznijmy tworzenie VirtualHost. Apache przechowuje wszystkie pliki konfiguracyjne VirtualHost w ramach/etc/apache2/witryny-za pomocą rozszerzenia .conf. Utwórz plik dla pierwszego wirtualnego hosta i edytuj w swoim ulubionym edytorze tekstu.

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

Dodaj następującą zawartość. Pamiętaj, aby używać poprawnej nazwy Servern i katalogu zgodnie z konfiguracją. Ta strona jest skonfigurowana do pracy z PHP 5.6.

Servername PHP56.przykład.com DocumentRoot/var/www/php56 -app opcje -indexes +fonseySymLinks +multiviews Updenterride wszystkie wymagają wszystkich przyznanych # Apache 2.4.10+ Can Can Shows to Unix Socket Sethandler „Proxy: UNIX:/var/run/php/php5.6-fpm.Sock | fcgi: // localhost "
12345678910111213 Servername PHP56.przykład.com dokumentroot/var/www/php56-app Opcje -INDEXES +FONDESSYMLINKS +Multivistls Updetoverride Wszystkie wymagają wszystkich przyznanych # Apache 2.4.10+ Can Can Shows to Unix Socket Sethandler „Proxy: UNIX:/var/run/php/php5.6-fpm.Sock | fcgi: // localhost "

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

sudo vim/etc/apache2/witryny-dostępny/php74.przykład.com.conf 

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

Servername PHP72.przykład.com DocumentRoot/var/www/php74 -app opcje -INDEXES +FONDESYMLINKS +Multiviews Upderteverride wszystkie wymagają wszystkich przyznanych Sethandler „Proxy: UNIX:/var/run/php/php7.4-fpm.Sock | fcgi: // localhost "
123456789101112 Servername PHP72.przykład.com dokumentroot/var/www/php74-app Opcje -INDEXES +FONDESSYMLINKS +Multivistls Updetoverride Wszystkie wymagają wszystkich przyznanych Sethandler "Proxy: UNIX:/var/run/php/php7.4-fpm.Sock | fcgi: // localhost "

Obie strony internetowe są teraz skonfigurowane. Ale nadal nie są aktywni. Apache przechowuje aktywne witryny w katalogu/etc/apache2/witryny. Możesz po prostu utworzyć symboliczny link plików konfiguracyjnych do tego katalogu lub użyć poniższego polecenia, aby zrobić to samo.

sudo a2ensite php56.przykład.com sudo a2ensite php74.przykład.com 

Po dokonaniu wszystkich zmian uruchom ponownie Apache, aby ponownie załadować nowe zmiany Ustawienia.

sudo systemctl restart apache2 

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

Przetestuj swoją konfigurację

Edytuj plik hostów /etc /hosts w systemie lokalnym i dokonaj wpisu jak poniżej. To rozwiązuje tymczasowe nazwy na adres IP Localhost.

sudo vim /etc /hosts 

Dodaj następujące wpis do końca pliku

127.0.0.1 php74.przykład.com 127.0.0.1 php56.przykład.com 

Otwórz przeglądarkę internetową i odwiedź obie strony. Zobaczysz to php56.przykład.com pokazuje wersję PHP 5.6 I PHP74.przykład.com pokazuje PHP 7.4 jako konfiguracja.

http: // php74.przykład.com:

http: // php56.przykład.com:

Wniosek

Ten samouczek pomaga skonfigurować wiele stron internetowych z różną wersją 2-2 PHP na jednym serwerze Apache na Ubuntu 20.04 System.