Jak zainstalować wiele wersji PHP z Apache na Ubuntu 20.04
- 4990
- 522
- Juliusz Janicki
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 |
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 |
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.