GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat více verzí PHP s Apache na Ubuntu 18.04 a 16.04

Obecně platí, že správce hos používal samostatný server pro každou verzi aplikace PHP. Což zvyšuje náklady na hosting. Někteří správci hostitelů používají Docker ke spuštění více verzí PHP na jednom serveru. Většina z vás také zná konfiguraci, kterou jsem použil v tomto tutoriálu. To si ale někteří správci systému neuvědomují. Tento tutoriál vám pomůže nainstalovat více verzí PHP s Apache na systému Ubuntu 18.04 a 16.04 bez přepínání verzí PHP.

Tento tutoriál popisuje instalaci a konfiguraci dvou VirtualHost na Apache se samostatnými verzemi PHP. První VirtualHost bude pracovat s PHP 5.6 a další VirtualHost poběží s PHP 7.2. Projděte si tedy tento tutoriál. Můžete také použít více než dvě verze PHP s Apache podle potřeby, ale tento tutoriál pokrývá pouze dvě.

Instalace Apache

Nainstalujte webový server Apache z oficiálního úložiště. Spusťte terminál na vašem systému nebo se přihlaste pomocí ssh pro vzdálené systémy. Chcete-li nainstalovat nejnovější dostupnou verzi webového serveru Apache, spusťte následující příkazy.

sudo apt update 
sudo apt install apache2 libapache2-mod-fastcgi 

Ubuntu 18.04 Users:
sudo apt install apache2 libapache2-mod-fcgid

Instalace PHP

Pro instalaci verzí PHP používáme zde udržovaný PPA. Pomocí níže uvedených příkazů přidejte PPA do vašeho systému.

### On Ubuntu 18.04  
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

### On Ubuntu 16.04  
sudo apt install python-software-properties
sudo add-apt-repository ppa:ondrej/php

Pro tento tutoriál používáme PHP 5.6 a PHP 7.2 pro konfiguraci s webovým serverem Apache. Pro použití více verzí PHP použijeme PHP FPM a FastCGI. Pojďme na váš systém nainstalovat následující balíčky.

apt update
sudo apt install php5.6 php5.6-fpm
sudo apt install php7.2 php7.2-fpm

Po instalaci se automaticky spustí služby php-fpm. Pomocí následujících příkazů se ujistěte, že obě služby běží.

sudo systemctl status php5.6-fpm
sudo systemctl status php7.2-fpm
  • Doporučeno:Jak povolit/zakázat moduly PHP na Ubuntu

Konfigurace Apache

Nyní povolte několik modulů potřebných pro konfiguraci více verzí PHP s Apache. Tyto moduly jsou nezbytné pro integraci PHP FPM a FastCGI se serverem Apache.

sudo a2enmod actions fastcgi alias proxy_fcgi

Ubuntu 18.04 Users:
sudo a2enmod actions fcgid alias proxy_fcgi

Připravte se na konfiguraci webových stránek na vašem serveru Apache. Pro účely testování konfiguruji dva weby pro práci se dvěma různými verzemi PHP. Nejprve vytvořte dva adresáře na vašem serveru.

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

Nyní vytvořte a index.php obsahující funkci phpinfo().

echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/php72/index.php

Začněme s tvorbou VirtualHost. Apache uchovává všechny konfigurační soubory VirtualHost pod /etc/apache2/sites-available s příponou .conf. Vytvořte soubor pro prvního virtuálního hostitele a upravte jej ve svém oblíbeném textovém editoru.

sudo vim /etc/apache2/sites-available/php56.example.com.conf

Přidejte následující obsah. Ujistěte se, že používáte správný ServerName a cestu k adresáři podle vašeho nastavení. Tento web je nakonfigurován pro práci s PHP 5.6.

Apache
12345678910111213 ServerName php56.example.com DocumentRoot /var/www/php56 Možnosti -Indexy +FollowSymLinks +MultiViews AllowOverride All Vyžadovat uděleno vše # Apache 2.4.10+ může proxy k unixovému soketu SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost"

Podobně vytvořte druhý konfigurační soubor VirtualHost pro práci s PHP 7.2. Upravit konfigurační soubor v textovém editoru:

sudo vim /etc/apache2/sites-available/php72.example.com.conf

Přidejte následující obsah do souboru se správným názvem ServerName a DocumentRoot.

Apache
123456789101112 ServerName php72.example.com DocumentRoot /var/www/php72 Možnosti -Indexy +FollowSymLinks +MultiViews AllowOverride All Vyžadovat uděleno vše SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost"

Oba weby jsou nyní nakonfigurovány. Ale stále nejsou aktivní. Apache uchovává aktivní stránky v adresáři /etc/apache2/sites-enabled. Můžete jednoduše vytvořit symbolický odkaz konfiguračních souborů do tohoto adresáře nebo k tomu použít níže uvedený příkaz.

sudo a2ensite php56.example.com
sudo a2ensite php72.example.com

Po provedení všech změn restartujte Apache, aby se znovu načetly nové změny nastavení.

sudo systemctl restart apache2

Vaše nastavení je nyní dokončeno. Přejděte k dalšímu kroku a otestujte své nastavení.

Testovací nastavení

Upravte soubor /etc/hosts ve svém lokálním systému a proveďte záznam jako níže. Tím se dočasné názvy přeloží na IP adresu localhost.

sudo vim /etc/hosts

Přidejte následující záznam na konec souboru

127.0.0.1 php72.example.com
127.0.0.1 php56.example.com

Otevřete webový prohlížeč a navštivte obě stránky. Uvidíte, že php56.example.com zobrazuje verzi PHP 5.6 a php72.example.com zobrazuje PHP 7.2 jako konfigurace.


Ubuntu
  1. Jak nainstalovat více verzí PHP na Ubuntu 18.04 LTS

  2. Jak nainstalovat Suphp s Apache na Ubuntu / Linux

  3. Jak nainstalovat PHP 7.4 na Ubuntu 20.04

  1. Jak nainstalovat Apache na Ubuntu 18.04

  2. Jak nainstalovat Apache na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na Ubuntu 18.04

  1. Jak nainstalovat Joomla s Apache na Ubuntu 18.04

  2. Jak nainstalovat Apache Maven na Ubuntu 20.04

  3. Jak nainstalovat PHP 8 na Ubuntu 20.04