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:
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
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
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
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
- DEB.SURY.ORG: http://deb.sury.org/