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.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.
Apache123456789101112 |
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.