GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie mehrere PHP-Versionen mit Apache unter Debian 11/10

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.php
echo "<?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 ServerName php56.example.com DocumentRoot /var/www/php56 Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all permission # Apache 2.4.10+ kann auf Unix-Socket SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"

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 ServerName php72.example.com DocumentRoot /var/www/php72 Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all permission SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"

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.


Debian
  1. So installieren Sie den XFCE-Desktop unter Debian 10/11

  2. So installieren Sie KDE-Plasma unter Debian 10/11

  3. So installieren Sie PHP 8 auf Debian 10

  4. So installieren Sie PHP unter Debian 11

  5. So installieren Sie PHP 7.2 auf Debian 9

So installieren Sie Google Chrome unter Debian 10/11

So installieren Sie phpMyAdmin mit Apache unter Debian 11 / Debian 10

So installieren Sie das neueste PHP 8.1 unter Debian 11/10

So installieren Sie mehrere PHP-Versionen mit Apache unter Ubuntu 18.04 und 16.04

So installieren Sie Apache mit PHP-FPM unter Debian 10

So installieren Sie Apache Kafka unter Debian 10/9