Obecně platí, že správce hostitele používá samostatný systém 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. Je možné, že si to někteří správci systému neuvědomují. Tento tutoriál vám pomůže nainstalovat více verzí PHP s Apache na systémy Debian 11, Debian 10 a Debian 9 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 PHP
Pro instalaci verzí PHP používáme zde udržovaný PPA. K přidání PPA na váš systém Debian použijte několik níže uvedených příkazů.
sudo apt install ca-certificates apt-transport-https wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
Tento tutoriál používá 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. Spuštěním následujících příkazů nainstalujte PHP a FPM na systém Debian.
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
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-fcgid
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 fcgid alias proxy_fcgi
Nyní vytvořte ve svém systému dva samostatné adresáře pro konfiguraci obou webů ve vašem systému.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Nyní vytvořte a index.php obsahující funkci phpinfo(). To pomůže uživatelům zobrazit a potvrdit, jakou verzi PHP používá VirtualHost.
echo " <?php phpinfo(); ?> " > /var/www/php56/index.phpecho " <?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 |
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 |
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í
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.