Wie man PHP 7.x als PHP-FPM & FastCGI für ISPConfig 3.1 mit apt unter Debian 8 und 9 installiert

Die endgültige Version von PHP 7.1 ist jetzt verfügbar. PHP 7.1 ist die nächste Generation der Programmiersprache PHP, es ist bis zu 2 Mal schneller als PHP 5.6 und 14 Mal schneller als PHP 5.0, so die Versionshinweise. Die neue PHP-Version ist nicht 100% kompatibel mit PHP 5.x, da einige veraltete APIs entfernt wurden. Es ist daher eine gute Idee, Ihre Websites auf die Kompatibilität mit dieser neuen Version zu testen. Dies kann einfach und ohne Beeinträchtigung aller Sites auf Ihrem Server erfolgen, indem Sie die Funktion der Multi-PHP-Version in ISPConfig 3 verwenden. Die PHP-Version kann in den Website-Einstellungen von ISPConfig 3 für jede Seite einzeln ausgewählt werden. Diese Funktion funktioniert mit PHP-FPM und FastCGI. Dieses Tutorial zeigt, wie man PHP 7.x als PHP-FPM und eine FastCGI-Version auf einem Debian Jessie- oder Stretch-Server direkt von der Debian-PP-Paketbetreuer-Site aus installiert.

1 Vorbemerkung

Ich werde PHP direkt von der Debian PHP-Paketbetreuer-Website https://packages.sury.org/php/ mit apt-get installieren. Dadurch wird die bestehende Installation nicht überschrieben, sondern die standardmäßig verwendete PHP-Version wird auf die neu installierte Version geändert! Daher ist es sehr wichtig, eine neue PHP-Version für die installierte Version zu ISPConfig hinzuzufügen und alle Sites zuerst auf diese Version umzustellen. Wenn Sie Cron-Jobs verwenden, die PHP-Skripte aufrufen, müssen Sie diese ebenfalls anpassen, dazu später mehr.

Da auch andere Pakete wie openssl aktualisiert werden, können die installierten Pakete von sury.org nach der Installation nicht einfach entfernt werden. Sie mÃ?ssen zunÃ?chst ein Downgrade dieser Pakete auf die Debian-Versionen durchfÃ?hren, bevor Sie die PHP-Pakete entfernen können, ohne andere Pakete zu zerstören. Der einfachste Weg für mich war, das neu hinzugefügte Repository zu deaktivieren, dann erscheinen installierte Pakete von sury.org als selbst erstellte oder veraltete Pakete in aptitude und Sie können ein Paket nach dem anderen herabstufen.

Bitte beachten Sie, dass PHP-FPM sowohl auf Apache- als auch auf Nginx-Servern verwendet werden kann, während FastCGI nur für Apache-Server verfügbar ist.

2 PHP-Versionen in ISPConfig aktivieren

In ISPConfig 3 können Sie die neuen PHP-Versionen unter System > Zusätzliche PHP-Versionen konfigurieren.

Debian’s PHP-Version hinzufügen

Sie können diesen Schritt überspringen, wenn Sie keine Debian-Version von PHP installiert haben.

Zuerst müssen Sie eine neue Version für die bereits installierte PHP-Version hinzufügen. Auf der Registerkarte Name geben Sie einfach einen Namen für die PHP-Version ein (z.B. Debian 5.6) – diese PHP-Version wird unter diesem Namen in den Website-Einstellungen in ISPConfig aufgelistet:

Geben Sie den Namen der benutzerdefinierten PHP-Version ein

Gehen Sie zur Registerkarte FastCGI-Einstellungen und füllen Sie die Felder wie folgt aus:

Path to the PHP FastCGI binary: php5-cgi
Path to the php.ini directory: /etc/php5/cgi/php.ini

PHP 7.1 FastCGI

Gehen Sie dann zur Registerkarte PHP-FPM-Einstellungen und füllen Sie die Felder wie folgt aus:

Path to the PHP-FPM init script: php5-fpm
Path to the php.ini directory: /etc/php5/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php5/fpm/pool.d

PHP 7.1 FPM-Einstellungen

Wichtiger Schritt für Cron-Jobs

Wenn Sie Cron-Jobs verwenden, die PHP-Skripte aufrufen, müssen Sie cron auch mitteilen, welche Version verwendet werden soll. Fügen Sie php5 am Anfang des Befehls hinzu, um die Version von Debian zu verwenden. Wenn Sie sich nicht sicher sind, was Sie genau verwenden, folgen Sie dem Symlink /usr/bin/php und verwenden Sie sein endgültiges Ziel als Präfix.

Weitere PHP-Versionen hinzufügen

Derzeit sind 3 Versionen unter https://packages.sury.org/php/ verfügbar, und Sie müssen den letzten Schritt für jede Version, die Sie installieren wollen, wiederholen. Verwenden Sie stattdessen aber die folgenden Einstellungen:

PHP 5.6

Path to the PHP FastCGI binary: php-cgi5.6
Path to the php.ini directory: /etc/php/5.6/cgi/php.ini
Path to the PHP-FPM init script: php5.6-fpm
Path to the php.ini directory: /etc/php/5.6/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/5.6/fpm/pool.d

Die Cli-Version für z.B. cron-Jobs hat den Namen php5.6.

PHP 7.0

Path to the PHP FastCGI binary: php-cgi7.0
Path to the php.ini directory: /etc/php/7.0/cgi/php.ini
Path to the PHP-FPM init script: php7.0-fpm
Path to the php.ini directory: /etc/php/7.0/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.0/fpm/pool.d

Die Cli-Version für z.B. cron-Jobs hat den Namen php7.0.

PHP 7.1

Path to the PHP FastCGI binary: php-cgi7.1
Path to the php.ini directory: /etc/php/7.1/cgi/php.ini
Path to the PHP-FPM init script: php7.1-fpm
Path to the php.ini directory: /etc/php/7.1/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.1/fpm/pool.d

Die Cli-Version für z.B. cron-Jobs hat den Namen php7.1.

PHP 7.2

Path to the PHP FastCGI binary: php-cgi7.2
Path to the php.ini directory: /etc/php/7.2/cgi/php.ini
Path to the PHP-FPM init script: php7.2-fpm
Path to the php.ini directory: /etc/php/7.2/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.2/fpm/pool.d

Die Cli-Version für z.B. cron-Jobs hat den Namen php7.2.

PHP 7.3

Path to the PHP FastCGI binary: php-cgi7.3
Path to the php.ini directory: /etc/php/7.3/cgi/php.ini
Path to the PHP-FPM init script: php7.3-fpm
Path to the php.ini directory: /etc/php/7.3/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.3/fpm/pool.d

Die Cli-Version für z.B. cron-Jobs hat den Namen php7.3.

3 PHP-Version von Websites ändern

Sie können diesen Schritt überspringen, wenn Sie keine Debian-Version von PHP installiert haben.

Ändern Sie nun die PHP-Version aller Websites auf die neu erstellte Version (z.B. Debian 5.6).

Und vergessen Sie nicht, die Cron-Jobs wie oben erwähnt zu wechseln.

4 Fügen Sie das Repository unter packages.sury.org hinzu

Um das Repository unter packages.sury.org und seine BGP-Schlüssel zu apt hinzuzufügen, verwenden Sie diese Befehle:

apt-get install -y apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Der nächste Befehl ist nur eine Zeile, fügen Sie keine Zeilenumbrüche hinzu:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update

Um bereits installierte Pakete aus dem neuen Repository zu aktualisieren, verwenden Sie diesen Befehl:

apt-get upgrade

5 PHP von packages.sury.org installieren

Ich biete hier mehrere Optionen zur Installation an, bitte wählen Sie die gewünschten Versionen aus und überspringen Sie einfach den Rest!

5.1 PHP 5.6 installieren

Um PHP zu installieren, verwenden Sie diesen Befehl:

apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm

5.2 PHP 7.0 installieren

Um PHP zu installieren, verwenden Sie diesen Befehl:

apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm

5.3 PHP 7.1 installieren

Um PHP zu installieren, verwenden Sie diesen Befehl:

apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm

5.4 PHP 7.2 installieren

Um PHP zu installieren, verwenden Sie diesen Befehl:

apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm

5.5 PHP 7.3 installieren

Um PHP zu installieren, verwenden Sie diesen Befehl:

apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm

5.6 Installieren Sie die neueste PHP-Version

Um die neueste PHP-Version zu installieren, verwenden Sie diesen Befehl:

apt-get install php php-cli php-cgi php-fpm

6 Installieren Sie die Memcache-Erweiterung (optional)

Um Memcache zu installieren, verwenden Sie diesen Befehl:

apt-get install php-memcache php-memcached

7 APCu-Erweiterung installieren (optional)

Um den APC-Benutzer-Cache zu installieren, verwenden Sie diesen Befehl:

apt-get install php-apcu php-apcu-bc

8 xDebug-Erweiterung installieren (optional)

Das xDebug-Modul ist eine Debugging-Erweiterung für PHP. Die Installation ist optional.

Um xDebug zu installieren, verwenden Sie diesen Befehl:

apt-get install php-xdebug

Dieses Paket scheint andere Standardeinstellungen als das Debian-Paket php5-xdebug zu haben. Abhängig von Ihrer Software müssen Sie Einstellungen wie xdebug.max_nesting_level ändern, um sie zum Laufen zu bringen!

9 Weitere Erweiterungen installieren (optional)

Es gibt eine Menge zusätzlicher Erweiterungen, die Sie für PHP installieren können. Hier ist eine Liste der verfügbaren Pakete, von denen Sie einige für jede Version separat installieren müssen. Löschen Sie einfach die Pakete, die Sie nicht verwenden werden, aus den folgenden Befehlen:

9.1 Versionsunabhängige Pakete

apt-get install

9.2 Versionsabhängige Pakete

apt-get install

10 Debian-Standard-PHP auf die ursprüngliche Version zurücksetzen

Das Standard-PHP des Betriebssystems muss auf der ursprünglichen Version bleiben. Um dies zu beheben, führen Sie diese Befehle aus:

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

Unter Debian 9: Wählen Sie PHP 7.0, unter Debian 8 wählen Sie PHP 5.6 im erscheinenden Dialog.

11 FPM-Dämon neu starten

Starten Sie schließlich die php-fpm-Dämonen neu. Führen Sie die Befehle für die zuvor installierten aus:

service php5.6-fpm restart
service php7.0-fpm restart
service php7.1-fpm restart
service php7.2-fpm restart
service php7.3-fpm restart

11 Links

Das könnte dich auch interessieren …