netcup.de

Installieren mehrerer PHP Versionen in ispconfig 3 für Debian 8 / Debian 9 / Debian 10

Since spam comments have been abused, it is necessary to register to leave comments

System auf den neusten Stand bringen

Diese Schritte MÜSSEN als ROOT ausgeführt werden.

Es muss jedem Klar sein, das PHP auf die neuste Version geupdatet wird und die Maintainer Pakete überschrieben werden.


Code
apt-get update
apt-get upgrade


Sury.org zur source.list hinzufügen

ACHTUNG: Es sind NUR Pakete für Debian 8, Debian 9 und Debian 10 verfügbar !!!!!

Code
apt install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt update
apt upgrade


PHP Versionen installieren

Ab PHP 7.2 ist das Paket "php-mycrpt" nicht mehr verfügbar

Ab PHP 7.4 ist das Paket "php-recode" nicht mehr verfügbar. Evtl kommt es in der Stable wieder


PHP 5.6:

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


PHP 7.0

Code
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

Code
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

Code
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

Code
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

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


PHP auf Default zurücksetzen in Debian

Durch das installieren der neuen PHP Pakete, wurde die Default PHP Version in Debian auf die neuste PHP Version geändert. Dies kann Probleme mit einigen Anwendungen geben, deshalb setzen wir es auf Standard zurück.


Für Debian 8 wählen wir: PHP 5.6

Für Debian 9 wählen wir: PHP 7.0

Für Debian 10 wählen wir: PHP7.3


BEIDE Befehle ausführen und BEIDE auf DEFAULT setzen:

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


Einrichten der PHP Versionen in ispconfig3

Wir loggen uns mit einem ADMIN Account in ispconfig ein.


Danach navigieren wir zu:



Dort fügen wir durch Kilcken auf: "Neue PHP Version hinzufügen", nacheinander folgendes hinzu:


PHP 5.6


Tab "Name"

Server: Hier den Server auswählen

Name: Hier einen Namen vergeben


Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php5.6-cgi

Pfad zum php.ini Verzeichnis: /etc/php/5.6/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php5.6-fpm

Pfad des php.ini Verzeichnis: /etc/php/5.6/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/5.6/fpm/pool.d



PHP 7.0


Tab "Name"
Server: Hier den Server auswählen

Name: Hier einen Namen vergeben


Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php7.0-cgi

Pfad zum php.ini Verzeichnis: /etc/php/7.0/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php7.0-fpm

Pfad des php.ini Verzeichnis: /etc/php/7.0/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.0/fpm/pool.d



PHP 7.1


Tab "Name"
Server: Hier den Server auswählen
Name: Hier einen Namen vergeben


Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php7.1-cgi

Pfad zum php.ini Verzeichnis: /etc/php/7.1/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php7.1-fpm

Pfad des php.ini Verzeichnis: /etc/php/7.1/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.1/fpm/pool.d



PHP 7.2


Tab "Name"
Server: Hier den Server auswählen
Name: Hier einen Namen vergeben


Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php7.2-cgi

Pfad zum php.ini Verzeichnis: /etc/php/7.2/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php7.2-fpm

Pfad des php.ini Verzeichnis: /etc/php/7.2/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.2/fpm/pool.d



PHP 7.3


Tab "Name"
Server: Hier den Server auswählen
Name: Hier einen Namen vergeben


Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php7.3-cgi

Pfad zum php.ini Verzeichnis: /etc/php/7.3/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php7.3-fpm

Pfad des php.ini Verzeichnis: /etc/php/7.3/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.3/fpm/pool.d



PHP 7.4


Tab "Name"
Server: Hier den Server auswählen
Name: Hier einen Namen vergeben

Tab "FastCGI Einstellungen"

Pfad zum PHP FastCGI Binary: php7.4-cgi

Pfad zum php.ini Verzeichnis: /etc/php/7.4/cgi/php.ini


Tab "FPM Einstellungen"

Pfad zum PHP-FPM init Script: php7.4-fpm

Pfad des php.ini Verzeichnis: /etc/php/7.4/fpm/php.ini

Pfad zum PHP-FPM Pool Verzeichnis: /etc/php/7.4/fpm/pool.d



Damit sind alle Versionen in ispconfig eingetragen und können ab jetzt individuell genutzt werden.

Restarten der Dienste

Jetzt werden alle Dienste restartet:


Bash
systemctl restart php5.6-fpm
systemctl restart php7.0-fpm
systemctl restart php7.1-fpm
systemctl restart php7.2-fpm
systemctl restart php7.3-fpm
systemctl restart php7.4-fpm
systemctl restart apache2


Ich nutze hierfür ein Script, welches alle Dienste restartet:



Script zur automatischen Installation (Versionen werden nicht in ispconfig eingetragen)

Da ich mehrere Server habe und nicht alles per C&P machen wollte, habe ich mir ein kleines Script geschrieben:




Falls Euch das Tutorial gefallen hat, gebt mir doch (oben rechts) einen Kaffee aus.

Comments 3

  • Hallo Torsten!


    Danke, für die Anleitung - perfekt erklärt!


    Leider fäuft fastcgi nicht.


    Error.log:

    [Tue Feb 18 17:39:14.272735 2020] [fcgid:warn] [pid 12698] (104)Connection reset by peer: [client 62.99.0.0:54719] mod_fcgid: error reading data from FastCGI server

    [Tue Feb 18 17:39:14.272782 2020] [core:error] [pid 12698] [client 62.99.0.0:54719] End of script output before headers: index.php


    Ich weiß natürlich, dass der Blog kein Support-Forum ist, aber eventuell hast Du eine Lösung im Ärmel.


    System: Debian 10.2

    ISPConfig 3.1.15p2

    Server: Hetzner Cloud CX51

  • Code
    cat /etc/issue
    Debian GNU/Linux 10 \n \l

    Der Pfad zum PHP Script und binary stimmt nicht ganz

    Code
    # php <tab> <tab> :)
    php php7.0 php7.2 php7.4 php-cgi5.6 php-cgi7.1 php-cgi7.3 phpdismod php-fpm5.6 php-fpm7.1 php-fpm7.3 phpquery php5.6 php7.1 php7.3 php-cgi php-cgi7.0 php-cgi7.2 php-cgi7.4 phpenmod php-fpm7.0 php-fpm7.2 php-fpm7.4

    Quasi als Beispiel bei ispconfig php 7.4

    Code
    PHP-Name: PHP 7.4
    FastCGI Settings
    Path to the PHP FastCGI binary: php-cgi7.4
    Path to the php.ini directory: /etc/php/7.4/cgi/php.ini
    PHP-FPM Settings
    Path to the PHP-FPM init script: php-fpm7.4
    Path to the php.ini directory: /etc/php/7.4/fpm/php.ini
    Path to the PHP-FPM pool directory: /etc/php/7.4/fpm/pool.d

    Ansonsten hat man in der Apache Log

    Code
    # tail -f /var/log/apache2/error.log
    [...]
    .php-fcgi-starter: line 15: exec: php7.3-cgi: not found
    [...]