GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie mehrere PHP-Versionen unter Ubuntu 20.04, 18.04, 20.10

Dieses Tutorial zeigt Ihnen, wie Sie mehrere PHP-Versionen installieren auf Ubuntu und lassen Sie einen bestimmten virtuellen Apache-Host oder Nginx-Serverblock einen davon verwenden. Dies ist nützlich, wenn Sie mehrere Webanwendungen auf Ihrem Server haben, aber eine oder zwei davon nicht mit der PHP-Version im Standard-Ubuntu-Repository kompatibel sind. Das Ubuntu 18.04-Repository enthält PHP7.2 und das Ubuntu 20.04-Repository enthält PHP7.4. Wir werden sehen, wie man PHP7.3 installiert , PHP7.4 , und PHP8.0 auf einem einzelnen Ubuntu-Server.

Installieren Sie mehrere Versionen von PHP auf Ubuntu über PPA

Der einfachste Weg, mehrere Versionen von PHP zu installieren, ist die Verwendung des PPA von Ondřej Surý, einem Debian-Entwickler. Um dieses PPA hinzuzufügen, führen Sie die folgenden Befehle im Terminal aus. Die software-properties-common Paket wird benötigt, wenn Sie Software von PPA installieren möchten. Es wird automatisch auf dem Ubuntu-Desktop installiert, fehlt aber möglicherweise auf Ihrem Ubuntu-Server.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Jetzt können Sie PHP8.0 installieren unter Ubuntu durch Ausführen des folgenden Befehls.

sudo apt install php8.0 php8.0-fpm

Und installieren Sie einige gängige PHP8.0-Erweiterungen.

sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl

Sie können alle verfügbaren PHP7.4-Erweiterungen anzeigen, indem Sie sudo apt install php8.0 eingeben und drücken Sie Tab zweimal drücken.

Zur Installation von PHP7.4 Führen Sie unter Ubuntu

aus
sudo apt install php7.4 php7.4-fpm

Installieren Sie einige gängige PHP7.4-Erweiterungen.

sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Sie können PHP7.3 auf die gleiche Weise installieren. Ersetzen Sie einfach die Versionsnummer in diesen Befehlen.

Hinweis :PHP5.6, PHP7.0 und PHP7.2 haben das Ende ihrer Lebensdauer erreicht, aber Sie können immer noch Sicherheitsfixes von diesem PPA erhalten.

Wechseln der PHP-Version im virtuellen Apache-Host

Standardmäßig verwendet Apache eine PHP-Version für alle virtuellen Hosts. Wenn Sie eine andere PHP-Version in einem bestimmten virtuellen Host verwenden möchten, müssen Sie das Apache PHP-Modul deaktivieren und PHP-Code über PHP-FPM ausführen. Prüfen Sie, ob mod_php installiert ist.

dpkg -l | grep libapache2-mod-php

Wenn es installiert ist, müssen Sie es deaktivieren. Zum Beispiel habe ich libapache2-mod-php7.4 auf meinem Ubuntu 20.04-Server installiert,

Ich deaktiviere es, indem ich Folgendes ausführe:

sudo a2dismod php7.4

Sie müssen auch das Prefork-MPM-Modul deaktivieren.

sudo a2dismod mpm_prefork

Jetzt müssen Sie den folgenden Befehl ausführen, um drei Module zu aktivieren, um PHP-FPM zu verwenden, unabhängig davon, ob mod_php auf Ihrem Server installiert ist.

sudo a2enmod mpm_event proxy_fcgi setenvif

Das PHP-FPM-Konfigurations-Snippet befindet sich unter /etc/apache2/conf-available/ .

Angenommen, Sie möchten PHP8.0 in einem virtuellen Apache-Host verwenden, öffnen Sie dann die Konfigurationsdatei des virtuellen Hosts und fügen Sie die folgende Zeile in <VirtualHost> ein Tags.

Include /etc/apache2/conf-available/php8.0-fpm.conf

So:

Speichern und schließen Sie die Datei. Überprüfen Sie dann die Syntax.

sudo apachectl -t

Starten Sie Apache neu, damit die Änderung wirksam wird.

sudo systemctl restart apache2

Nehmen wir nun an, Sie möchten PHP7.3 im virtuellen Mautic-Host verwenden, da Mautic nicht mit PHP7.4 kompatibel ist, und fügen Sie dann die folgende Zeile in Ihrem virtuellen Mautic-Host zwischen <VirtualHost> hinzu -Tags und starten Sie dann Apache neu.

Include /etc/apache2/conf-available/php7.3-fpm.conf

Um zu testen, welche PHP-Version von Ihrem virtuellen Host verwendet wird, können Sie eine info.php erstellen Datei in Ihrem Dokumentenstammverzeichnis (sagen wir /var/www/html ).

sudo nano /var/www/html/info.php

Fügen Sie den folgenden PHP-Code in die Datei ein.

<?php phpinfo(); ?>

Speichern und schließen Sie die Datei. Geben Sie dann in die Adressleiste Ihres Browsers ein

your-domain.com/info.php

Wechseln der PHP-Version im Nginx-Serverblock

Es ist sehr einfach, die PHP-Version im Nginx-Serverblock zu wechseln. Wie Sie wahrscheinlich wissen, führt Nginx PHP-Code über PHP-FPM aus, das auf einem Unix-Socket lauscht. Die Socket-Datei befindet sich in /run/php/ Verzeichnis.

Wie Sie auf dem Screenshot sehen können, gibt es auf meinem Server mehrere PHP-FPM-Socket-Dateien (.sock), die verschiedenen PHP-Versionen entsprechen. Ihre Nginx-Serverblockdatei enthält normalerweise das folgende Snippet, um eine Verbindung zum PHP-FPM-Server herzustellen.

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

Die von Nginx verwendete PHP-Version wird durch die dritte Zeile im Snippet bestimmt. Um PHP8.0 in einem bestimmten Nginx-Serverblock zu verwenden, ändern Sie diese Zeile in:

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

Um PHP7.3 im Nginx-Serverblock zu verwenden, ändern Sie diese Zeile in

fastcgi_pass unix:/run/php/php7.3-fpm.sock;

Ich bin sicher, Sie haben jetzt die Idee. Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Um zu testen, welche PHP-Version von Ihrem Serverblock verwendet wird, können Sie eine info.php erstellen Datei in Ihrem Dokumentenstammverzeichnis (sagen wir /var/www/html ).

sudo nano /var/www/html/info.php

Fügen Sie den folgenden PHP-Code in die Datei ein.

<?php phpinfo(); ?>

Speichern und schließen Sie die Datei. Geben Sie dann in die Adressleiste Ihres Browsers ein

your-domain.com/info.php

So legen Sie die Standard-PHP-Version für die Befehlszeile fest

Wenn Sie eine neuere Version von PHP auf Ubuntu installieren, wird diese zur Standardversion für die Befehlszeile. Ich habe PHP8.0 installiert, möchte aber immer noch PHP7.4 als Standardversion für die Befehlszeile.

Führen Sie den folgenden Befehl aus, um die standardmäßige PHP-Version für die Befehlszeile festzulegen.

sudo update-alternatives --config php

Um die aktuelle Version von PHP auf der Befehlszeile zu überprüfen, führen Sie

aus
php --version


Ubuntu
  1. So installieren Sie PHP 7.4 / 7.3 / 7.2 unter Ubuntu 18.04 / Ubuntu 16.04

  2. So installieren Sie PHP 8.0 unter Ubuntu 20.04 / Ubuntu 18.04

  3. So installieren Sie PHP 7.2 auf Ubuntu 16.04

  4. So installieren Sie PHP 7.3 auf Ubuntu 16.04

  5. Wie führe ich mehrere PHP-Versionen mit Nginx unter Ubuntu aus?

So installieren Sie PHP 8.0 auf Ubuntu 20.04

So wechseln Sie zwischen mehreren PHP-Versionen in Ubuntu

So installieren Sie PHP 8.0 unter Ubuntu 20.04 / 18.04

So installieren Sie verschiedene PHP-Versionen (5.6, 7.x und 8.0) in Ubuntu

So installieren Sie PHP unter Ubuntu 22.04

So installieren Sie PHP unter Ubuntu 22.04