Im Allgemeinen verwendete der hos-Manager einen separaten Server für jede Anwendungsbereitstellung der PHP-Version. Was die Hosting-Kosten erhöht. Einige der Host-Manager verwenden Docker, um mehrere PHP-Versionen auf einem einzigen Server auszuführen. Außerdem kennen die meisten von Ihnen die Konfiguration, die ich in diesem Tutorial verwendet habe. Einige Systemadministratoren sind sich dessen jedoch nicht bewusst. Dieses Tutorial hilft Ihnen, mehrere PHP-Versionen mit Apache auf Ubuntu 18.04- und 16.04-Systemen zu installieren, ohne die PHP-Versionen zu wechseln.
Dieses Tutorial beschreibt die Installation und Konfiguration von zwei VirtualHost auf Apache mit separaten PHP-Versionen. Der erste VirtualHost wird mit PHP 5.6 arbeiten und ein weiterer VirtualHost wird mit PHP 7.2 laufen. Gehen Sie also einfach dieses Tutorial durch. Sie können bei Bedarf auch mehr als zwei PHP-Versionen mit Apache verwenden, aber dieses Tutorial behandelt nur zwei.
Apache-Installation
Installieren Sie den Apache-Webserver aus dem offiziellen Repository. Starten Sie das Terminal auf Ihrem System oder melden Sie sich mit ssh für Remote-Systeme an. Führen Sie die folgenden Befehle aus, um die neueste verfügbare Version des Apache-Webservers zu installieren.
sudo apt update sudo apt install apache2 libapache2-mod-fastcgi Ubuntu 18.04 Users: sudo apt install apache2 libapache2-mod-fcgid
PHP-Installation
Für die Installation von PHP-Versionen verwenden wir das hier gepflegte PPA. Verwenden Sie die folgenden Befehle, um den PPA zu Ihrem System hinzuzufügen.
### 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
Für dieses Tutorial verwenden wir PHP 5.6 und PHP 7.2 zur Konfiguration mit dem Apache-Webserver. Um die mehreren PHP-Versionen zu verwenden, verwenden wir PHP FPM und FastCGI. Lassen Sie uns die folgenden Pakete auf Ihrem System installieren.
apt update sudo apt install php5.6 php5.6-fpm sudo apt install php7.2 php7.2-fpm
Nach der Installation werden die php-fpm-Dienste automatisch gestartet. Verwenden Sie die folgenden Befehle, um sicherzustellen, dass beide Dienste ausgeführt werden.
sudo systemctl status php5.6-fpm sudo systemctl status php7.2-fpm
- Empfohlen:So aktivieren/deaktivieren Sie PHP-Module unter Ubuntu
Apache-Konfiguration
Aktivieren Sie jetzt einige Module, die für die Konfiguration mehrerer PHP-Versionen mit Apache erforderlich sind. Diese Module sind notwendig, um PHP FPM und FastCGI mit dem Apache-Server zu integrieren.
sudo a2enmod actions fastcgi alias proxy_fcgi Ubuntu 18.04 Users: sudo a2enmod actions fcgid alias proxy_fcgi
Machen Sie sich bereit für die Konfiguration von Websites auf Ihrem Apache-Server. Zu Testzwecken konfiguriere ich zwei Websites so, dass sie mit zwei verschiedenen PHP-Versionen funktionieren. Erstellen Sie zunächst zwei Verzeichnisse auf Ihrem Server.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Erstellen Sie nun eine index.php mit der Funktion phpinfo().
echo " <?php phpinfo(); ?> " > /var/www/php56/index.phpecho " <?php phpinfo(); ?> " > /var/www/php72/index.php
Beginnen wir mit der Erstellung von VirtualHost. Apache hält alle VirtualHost-Konfigurationsdateien unter /etc/apache2/sites-available mit der Erweiterung .conf bereit. Erstellen Sie eine Datei für den ersten virtuellen Host und bearbeiten Sie sie in Ihrem bevorzugten Texteditor.
sudo vim /etc/apache2/sites-available/php56.example.com.conf
Fügen Sie den folgenden Inhalt hinzu. Stellen Sie sicher, dass Sie den richtigen Servernamen und Verzeichnispfad gemäß Ihrer Einrichtung verwenden. Diese Website ist so konfiguriert, dass sie mit PHP 5.6 funktioniert.
Apache
12345678910111213 |
Erstellen Sie auf ähnliche Weise eine zweite VirtualHost-Konfigurationsdatei, um mit PHP 7.2 zu arbeiten. Konfigurationsdatei im Texteditor bearbeiten:
sudo vim /etc/apache2/sites-available/php72.example.com.conf
Fügen Sie der Datei den folgenden Inhalt mit dem richtigen ServerName und DocumentRoot hinzu.
Apache123456789101112 |
Sie beide Websites sind jetzt konfiguriert. Aber sie sind immer noch nicht aktiv. Apache hält aktive Sites im Verzeichnis /etc/apache2/sites-enabled. Sie können einfach einen symbolischen Link von Konfigurationsdateien zu diesem Verzeichnis erstellen oder den folgenden Befehl verwenden, um dasselbe zu tun.
sudo a2ensite php56.example.com sudo a2ensite php72.example.com
Nachdem Sie alle Änderungen vorgenommen haben, starten Sie Apache neu, um die neuen Einstellungsänderungen neu zu laden.
sudo systemctl restart apache2
Ihre Einrichtung ist nun abgeschlossen. Fahren Sie mit dem nächsten Schritt fort, um Ihre Einrichtung zu testen.
Testaufbau
Bearbeiten Sie die Datei /etc/hosts auf Ihrem lokalen System und machen Sie einen Eintrag wie unten. Dadurch werden temporäre Namen in die IP-Adresse des lokalen Hosts aufgelöst.
sudo vim /etc/hosts
Folgenden Eintrag am Ende der Datei hinzufügen
127.0.0.1 php72.example.com 127.0.0.1 php56.example.com
Öffnen Sie einen Webbrowser und besuchen Sie beide Seiten. Sie werden sehen, dass php56.example.com zeigt die Version PHP 5.6 und php72.example.com zeigt PHP 7.2 als Konfiguration.