ISPConfig mehrere PHP Versionen mit apt installieren auf Ubuntu – 2023 bis PHP 8.2

iscponfig

Die Anleitung kann auf für Installationen ohne ISPConfig verwendet werden!

Erklärung

Grundsätzlich gibt es mehrere Möglichkeiten, PHP auf einem System zu installieren. Die einfachste ist es, dies direkt mit apt zu erledigen. Jede Woche einmal kompilieren geht natürlich auch. 😉
Über die Paketverwaltung von Ubuntu – apt – kann PHP 7.2 installiert werden. Es handelt sich hierbei um die Standardversion von Ubuntu 18.10 LTS.

In Hostingumgebungen läuft auf einem Server aber nicht nur eine Webseite. So hat jeder Kunde seinen eigenen Anspruch an die PHP Version.
Aber auch diese lassen sich dank sury.org ganz einfach installieren.

https://deb.sury.org

In der Anleitung werden die Pakete von sury.org verwendet.

Können wir dieser Quelle vertrauen? Ein ganz klares Ja!
Beim Betreiber handelt es sich um Ondřej Surý. Wer sich schon ein wenig länger mit PHP und Debian auseinandersetzt, hat seinen Namen bestimmt schon mal gelesen. Seit PHP 5 stellt er die Pakete für Debian zusammen. Somit basieren die offiziellen Pakete auf seiner Arbeit.

In seinen Worten:

I am a Debian Developer since year 2000, and I have been packaging PHP for Debian since PHP 5. That means the official packages in Debian and Ubuntu are either my work or they are based on my work. The PHP packages in my Ubuntu PPA and Debian DPA matches the official packages in Debian. Basically I am saying that you can’t get any closer than that.

https://deb.sury.org/ – Who am i

Installation Ubuntu

Die Installation erfolgt als root.

1. Update des Systems

Als erstes bringen wir das ganze System auf den neusten Stand.

apt update && apt upgrade -y

2. Abhängigkeiten installieren

Damit im Anschluss alles sauber durchläuft, werden noch einige Abhängigkeiten installiert.

apt-transport-https – Ermöglicht die Übertragung per https – je nach OS und Version von apt nicht mehr nötig
lsb-release – Reporting
ca-certificates – Dieses Paket enthält die PEM-Dateien für CA-Zertifikate
software-properties-common – Für die Verwaltung von externen Softwarequellen

apt-get install apt-transport-https lsb-release ca-certificates software-properties-common

3. Ressourcenquelle hinzufügen

add-apt-repository ppa:ondrej/php

4. apt auf den neusten Stand bringen

Sollte nur einige Sekunden dauern, da alle Updates bereits installiert sind.

apt update && apt upgrade -y

PHP auf Ubuntu installieren

Hier müssen nicht alle Versionen installiert werden. Der Ablauf ist immer der gleiche. Einige Versionen sind bereits “end of life” und sollten nicht mehr verwendet werden.
Es kann bei bestehenden Systemen aber vorkommen, dass einige Webseiten noch mit einer veralteten Version laufen. Viele Kunden sehen hier nicht ein, wieso Sie nun jemanden bezahlen sollten, der Ihnen die bestehende Webseite anpasst. Also müssen wir in den sauren Apfel beissen und auch alte Versionen installieren.

php 7.0

apt -y install php7.0 php7.0-common php7.0-fpm php7.0-gd php7.0-mysql php7.0-imap php7.0-cli php7.0-cgi php-pear php7.0-mcrypt php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring php7.0-soap php7.0-common php7.0-opcache php7.0-mysql

php 7.1

apt -y install php7.1 php7.1-common php7.1-fpm php7.1-gd php7.1-mysql php7.1-imap php7.1-cli php7.1-cgi php-pear php7.1-mcrypt php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php-memcache php-imagick php-gettext php7.1-zip php7.1-mbstring php7.1-soap php7.1-common php7.1-opcache php7.1-mysql

php 7.2

apt -y install php7.2 php7.2-common php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-cli php7.2-cgi php-pear php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php7.2-soap php7.2-common php7.2-opcache php7.2-mysql

php 7.3

apt -y install php7.3 php7.3-common php7.3-fpm php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi php-pear php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring php7.3-soap php7.3-common php7.3-opcache php7.3-mysql

php 7.4

apt -y install php7.4 php7.4-cli php7.4-cgi php7.4-fpm php7.4-gd php7.4-mysql php7.4-imap php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache php-memcache php-imagick php-gettext libonig5 php7.4-common php7.4-json php7.4-readline php7.4-xml php7.4-curl php7.4-imagick php7.4-bcmath

php 8.0

apt install php8.0 php8.0-cli php8.0-cgi php8.0-fpm php8.0-gd php8.0-mysql php8.0-imap php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xsl php8.0-zip php8.0-mbstring php8.0-soap php8.0-opcache php8.0-common php8.0-readline php8.0-xml php8.0-curl php8.0-imagick php8.0-bcmath

php 8.1

apt -y install php8.1 php8.1-cli php8.1-cgi php8.1-fpm php8.1-gd php8.1-mysql php8.1-imap php8.1-curl php8.1-intl php8.1-pspell php8.1-sqlite3 php8.1-tidy php8.1-xsl php8.1-zip php8.1-mbstring php8.1-soap php8.1-opcache php8.1-common php8.1-readline php8.1-xml php8.1-curl php8.1-imagick php8.1-bcmath 

php 8.2

apt -y install php8.2 php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-imap php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xsl php8.2-zip php8.2-mbstring php8.2-soap php8.2-opcache php8.2-common php8.2-readline php8.2-xml php8.2-curl php8.2-imagick php8.2-bcmath 

So einfach sind alle PHP Versionen auf dem System installiert. Bei Fehlern gerne einen Kommentar 🙂

Mit apt update/upgrade werden ab sofort auch die PHP – Versionen aktualisiert.

Default PHP Ubuntu

Bei der Installation wurde die neuste PHP-Version als default gesetzt.
Falls dies nicht gewünscht ist, kann sie wie folgt wieder geändert werden.

update-alternatives --config php
update-alternatives --config php-cgi

Mit 1-4 die gewünschte PHP Version auswählen.

Im Anschluss den Webserver neu starten. Bsp. systemctl restart apache2

Einrichtung ISPConfig

Zusätzliche Versionen

Die Option findet sich unter System -> Zusätzliche PHP Version

Name

Server: <Server>
Kunde: leer
PHP-Name: Name der Version Bsp. PHP 7.3
Aktiv: Ja

FastCGI Einstellungen

Pfad zum PHP FastCGI Binary: php7.3-cgi
Pfad zum php.ini Verzeichnis /etc/php/7.3/cgi/php.ini

PHP-FPM Einstellungen

Pfad zum PHP-FPM Init Script: php7.3-fpm
Pfad zum php.ini Verzeichnis: /etc/php/7.3/fpm/php.ini
Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.3/fpm/pool.d

Für andere Versionen 7.3 durch 7.0, 7.1, 7.2, 7.4, 8.0 oder 8.1 ersetzen.
Beispiel:/etc/php/7.4/fpm/php.ini

Neustart

systemctl restart php7.4-fpm
systemctl restart apache2

PHP Version und Webserver nach System anpassen.

Default PHP von ISPConfig ändern

ISPConfig setzte für jede Webseite eine Default PHP Instanz. Diese bei einer Ubuntu 18 Installation ist diese noch auf PHP 7.2 – falls gewünscht kann diese unter dem Punkt System -> Serverkonfiguration -> SERVER -> Web -> PHP-Einstellungen geändert werden.

Die mobile Version verlassen