Im Allgemeinen verwendet der Host-Manager das separate System 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. Auch die Konfiguration ist den meisten von Ihnen bekannt. Möglicherweise sind sich einige Systemadministratoren dessen nicht bewusst. Dieses Tutorial hilft Ihnen, mehrere PHP-Versionen mit Apache auf Debian 11-, Debian 10- und Debian 9-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.
PHP-Installation
Für die Installation von PHP-Versionen verwenden wir das hier gepflegte PPA. Verwenden Sie die folgenden Befehle, um das PPA zu Ihrem Debian-System hinzuzufügen.
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
Dieses Tutorial verwendet 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. Führen Sie die folgenden Befehle aus, um PHP und FPM auf dem Debian-System zu 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
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-fcgid
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 fcgid alias proxy_fcgi
Erstellen Sie nun zwei separate Verzeichnisse auf Ihrem System für beide Sites, die auf Ihrem System konfiguriert werden.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Erstellen Sie nun eine index.php mit der Funktion phpinfo(). Dies hilft Benutzern zu sehen und zu bestätigen, welche PHP-Version vom VirtualHost verwendet wird.
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.
Apache
123456789101112 |
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
Ö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.