Jak skonfigurować wiele wersji PHP z Apache na Ubuntu

Jak skonfigurować wiele wersji PHP z Apache na Ubuntu

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 22.04, 20.04 i 18.04 Systemy LTS 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 8.1 i inny wirtualhost będzie działał z PHP 7.4. 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 Apache2

Zainstaluj serwer WWW Apache z oficjalnego repozytorium. Uruchom terminal w systemie lub zaloguj się z SSH dla zdalnych systemów. Wykonaj następujące polecenia, aby zainstalować najnowszą dostępną wersję Apache Webserver.

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

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 

Instalowanie wersji PHP

Do instalacji wersji PHP używamy TUTAJ PPA. 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 

Do tego samouczka używamy PHP 8.1 i php 7.4 Aby skonfigurować z Apache Webserver. Aby użyć wielu wersji PHP, użyjemy PHP FPM i FASTCGI. Zainstalujmy następujące pakiety w systemie.

sudo apt aktualizacja sudo apt instal PHP8.1 php8.1-fpm sudo apt instal PHP7.4 php7.4-fpm 

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

SUDO Systemctl Status Php8.1-FPM SUDO Systemctl Status Php7.4-fpm 
  • Może ci się spodobać: Jak włączyć/wyłączyć moduły PHP na Ubuntu

Konfigurowanie wirtualnych hostów Apache

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/php81 sudo mkdir/var/www/php74 

Utwórz indeks.plik PHP zawierający phpinfo () funkcjonować.

echo "" | sudo tee -a/var/www/php81/indeks.PHP Echo „” | sudo tee -a/var/www/php74/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/php81.przykład.com.conf 

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

Servername PHP81.przykład.com DocumentRoot/var/www/php81 Opcje -INDEXES +FONDSYMLINKS +MultiViews Updetoverride wszystkie wymagają wszystkiego przyznanego # Apache 2.4.10+ Can Can Shows to Unix Socket Sethandler „Proxy: UNIX:/var/run/php/php8.1-fpm.Sock | fcgi: // localhost "
12345678910111213 Servername PHP81.przykład.com dokumentroot/var/www/php81 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/php8.1-fpm.Sock | fcgi: // localhost "

Podobnie utwórz drugi plik konfiguracyjny VirtualHost do pracy z PHP 7.4. 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 PHP74.przykład.com DocumentRoot/var/www/php74 Opcje -INDEXES +FONDSYSMLINKS +MultiViews Updetoverride wszystkie wymagają wszystkich przyznanych Sethandler „Proxy: UNIX:/var/run/php/php7.4-fpm.Sock | fcgi: // localhost "
123456789101112 Servername PHP74.przykład.com dokumentroot/var/www/php74 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ą skonfigurowane teraz. 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 php81.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ę.

Konfiguracja testowa

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

sudo vim /etc /hosts 

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

127.0.0.1 php81.przykład.com 127.0.0.1 php74.przykład.com 

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

  • http: // php81.przykład.com
    PHP 8.1 z Apache
  • http: // php74.przykład.com
    PHP 7.4 z Apache

Wniosek

Ten samouczek pomógł zainstalować i skonfigurować wiele wersji PHP z Apache w systemie Ubuntu Linux. To zapewnia opłacalne rozwiązanie wdrażania różnych aplikacji wersji PHP na jednym serwerze internetowym.