Menü Schließen

ISPConfig mehrere PHP Versionen von Sury.org

ISPConfig Logo

Wer das Server Control Panel ISPConfig nutzt, der möchte früher oder später ggf. auch weitere PHP Versionen als die vom Hostsystem installierte, verwenden. Das geht über mehrere Wege, eine ist die die bereit gestellten von Sury.org zu verwenden. Wichtig hierbei ist am Ende PHP-FPM im ISPConfig Control Panel auszuwählen.

System auf den aktuellen Stand bringen:

# apt update && apt upgrade

Sources.list auf sury.org umstellen

# apt-get install apt-transport-https lsb-release ca-certificates software-properties-common
# 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 5.6 hinzufügen

# apt-get -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 php5.6-imagick php5.6-gettext php5.6-zip php5.6-mbstring php5.6-soap php5.6-common php5.6-opcache php5.6-mysql

PHP 7.0 hinzufügen

# apt-get -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 php7.0-memcache php7.0-imagick php7.0-gettext php7.0-zip php7.0-mbstring php7.0-soap php7.0-common php7.0-opcache php7.0-mysql php7.0-xml php7.0-json php7.0-bcmath

PHP 7.1 hinzufügen

# apt-get -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 php7.1-memcache php7.1-imagick php7.1-gettext php7.1-zip php7.1-mbstring php7.1-soap php7.1-opcache php7.1-mysql php7.1-xml php7.1-json php7.1-bcmath

PHP 7.2 hinzufügen

# apt-get -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 php7.2-memcache php7.2-imagick php-gettext php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-mysql php7.2-xml php7.2-json php7.2-bcmath php7.2-memcached

PHP 7.3 hinzufügen

# apt-get -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 php7.3-memcache php7.3-imagick php7.3-gettext php7.3-zip php7.3-mbstring php7.3-soap php7.3-opcache php7.3-mysql php7.3-xml php7.3-json php7.3-bcmath php7.3-memcached

PHP 7.4 installieren

# apt-get -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 php7.4-apcu php7.4-memcache php7.4-imagick php7.4-gettext php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache php7.4-mysql php7.4-xml php7.4-json php7.4-bcmath php7.4-memcached

PHP 8.0 installieren

# apt-get -y install php8.0 php8.0-common php8.0-fpm php8.0-gd php8.0-mysql php8.0-imap php8.0-cli php8.0-cgi php-pear php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xmlrpc php8.0-xsl php8.0-apcu php8.0-memcache php8.0-imagick php8.0-gettext php8.0-zip php8.0-mbstring php8.0-soap php8.0-opcache php8.0-mysql php8.0-xml php8.0-bcmath php8.0-gmp php8.0-memcached

PHP 8.1 installieren

# apt-get -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-apcu php8.1-opcache libonig5 php8.1-common php8.1-readline php8.1-xml php8.1-memcache php8.1-imagick php8.1-gettext php8.1-bcmath php8.1-gmp php8.1-memcached

PHP 8.2 installieren

# apt-get -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 libonig5 php8.2-common php8.2-readline php8.2-xml php8.2-memcache php8.2-imagick php8.2-bcmath php8.2-gmp php8.2-memcached php8.2-redis php8.2-apcu

PHP 8.3 installieren

# apt-get -y install php8.3 php8.3-cli php8.3-cgi php8.3-fpm php8.3-common php8.3-{apcu,bcmath,bz2,curl,gd,gmp,imagick,imap,intl,mbstring,memcache,memcached,mysql,opcache,pspell,readline,redis,soap,sqlite3,tidy,xdebug,xml,xsl,zip} libonig5

PHP Memcached und PHP XDebug installieren

# apt-get -y install php-memcached php-xdebug

Debian System auf Default PHP Version festlegen

# sudo update-alternatives --config php
 Auswahl      Pfad             Priorität Status
------------------------------------------------------------
  0            /usr/bin/php7.4   74        automatischer Modus
* 1            /usr/bin/php7.0   70        manueller Modus
  2            /usr/bin/php7.1   71        manueller Modus
  3            /usr/bin/php7.2   72        manueller Modus
  4            /usr/bin/php7.3   73        manueller Modus
  5            /usr/bin/php7.4   74        manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein:

# sudo update-alternatives --config php-cgi
Es gibt 5 Auswahlmöglichkeiten für die Alternative php-cgi (welche /usr/bin/php-cgi bereitstellen).

  Auswahl      Pfad                 Priorität Status
------------------------------------------------------------
  0            /usr/bin/php-cgi7.4   74        automatischer Modus
* 1            /usr/bin/php-cgi7.0   70        manueller Modus
  2            /usr/bin/php-cgi7.1   71        manueller Modus
  3            /usr/bin/php-cgi7.2   72        manueller Modus
  4            /usr/bin/php-cgi7.3   73        manueller Modus
  5            /usr/bin/php-cgi7.4   74        manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,

# sudo update-alternatives --config php-cgi-bin
Es gibt 5 Auswahlmöglichkeiten für die Alternative php-cgi-bin (welche /usr/lib/cgi-bin/php bereitstellen).

  Auswahl      Pfad                     Priorität Status
------------------------------------------------------------
  0            /usr/lib/cgi-bin/php7.4   74        automatischer Modus
* 1            /usr/lib/cgi-bin/php7.0   70        manueller Modus
  2            /usr/lib/cgi-bin/php7.1   71        manueller Modus
  3            /usr/lib/cgi-bin/php7.2   72        manueller Modus
  4            /usr/lib/cgi-bin/php7.3   73        manueller Modus
  5            /usr/lib/cgi-bin/php7.4   74        manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein:

Neustart der Dienste

# 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 php8.0-fpm
# systemctl restart php8.1-fpm
# systemctl restart php8.2-fpm
# systemctl restart php8.3-fpm
# systemctl restart apache2

PHP Versionen in ISPconfig bereit stellen

Als erstes im Panel anmelden. Unter System auf das linke Menü „Zusätzliche PHP Versionen“ klicken. Nachfolgend richte ich weitere Möglichkeiten der Auswahl von PHP für PHP-FPM ein.

ISPconfig PHP Versionen
ISPconfig PHP Versionen

Wie nachfolgend am Beispiel für PHP 7.4 weitere benötigte PHP Versionen anlegen. Auf den Button „Neue PHP Version hinzufügen“ klicken

ISPConfig weitere PHP Versionen
ISPConfig weitere PHP Versionen

Im ersten Reiter „Name“ wird der Server ausgewählt, und ein Name für die PHP Version eingegeben:

ISPConfig PHP Version Name
ISPConfig PHP Version Name

Im zweiten Reiter „FastCGI Einstellungen“ werden die Pfade für FastCGI eingetragen:

ISPConfig PHP FastCGI Pfade
ISPConfig PHP FastCGI Pfade

Im letzten Reiter „PH-FPM Einstellungen“ werden die Pfade für PHP-FPM eingetragen:

ISPConfig PHP-FPM Pfade
ISPConfig PHP-FPM Pfade

Genau wie eben beschrieben, können weitere PHP-Versionen für 5.6, 7.0, 7.1, 7.2, 7.3, 8.0, 8.1,8.2,8.3 usw. in ISPConfig konfiguriert werden.

Thats it – Have Fun!

6 Kommentare

  1. isptester

    Danach läuft apache nicht mehr.
    See „systemctl status apache2.service“ and „journalctl -xe“ for details.
    A start job for unit apache2.service has finished with a failure.

    • JARVIS

      Hallo ISPTester,
      bei mir hat das so geklappt. Mir fällt aber ein, dass es noch unter Debian 10 war, hast du evtl. 11 installiert bzw. welche Meldung steht genau im Apache error.log oder syslog?

      • iptester

        Ist debian 10

        Apache Errorlog ist leer.
        Sys log:

        Nov 25 14:15:02 ip-00-000-00-000 postfix/submission/smtpd[7671]: connect from scanner-25.ch1.censys-scanner.com[162.142.125.193]
        Nov 25 14:15:02 ip-00-000-00-000 pure-ftpd: (?@127.0.0.1) [INFO] New connection from 127.0.0.1
        Nov 25 14:15:02 ip-00-000-00-000 pure-ftpd: (?@127.0.0.1) [INFO] Logout.
        Nov 25 14:15:02 ip-00-000-00-000 postfix/smtpd[7662]: connect from localhost.localdomain[127.0.0.1]
        Nov 25 14:15:02 ip-00-000-00-000 postfix/smtpd[7662]: lost connection after CONNECT from localhost.localdomain[127.0.0.1]
        Nov 25 14:15:02 ip-00-000-00-000 postfix/smtpd[7662]: disconnect from localhost.localdomain[127.0.0.1] commands=0/0
        Nov 25 14:15:02 ip-00-000-00-000 dovecot: pop3-login: Disconnected (no auth attempts in 0 secs): user=, rip=127.0.0.1, lip=127.0.0.1, secured, session=
        Nov 25 14:15:02 ip-00-000-00-000 dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=127.0.0.1, lip=127.0.0.1, secured, session=
        Nov 25 14:15:04 ip-00-000-00-000 clamd[353]: Thu Nov 25 14:15:04 2021 -> SelfCheck: Database status OK.
        Nov 25 14:15:04 ip-00-000-00-000 postfix/submission/smtpd[7671]: lost connection after STARTTLS from scanner-25.ch1.censys-scanner.com[162.142.125.193]
        Nov 25 14:15:04 ip-00-000-00-000 postfix/submission/smtpd[7671]: disconnect from scanner-25.ch1.censys-scanner.com[162.142.125.193] ehlo=1 starttls=1 commands=2
        Nov 25 14:15:14 ip-00-000-00-000 named[526]: network unreachable resolving ‚fuzzy2.rspamd.com:11335/A/IN‘: 2001:500:a8::e#53
        Nov 25 14:15:14 ip-00-000-00-000 named[526]: network unreachable resolving ‚fuzzy2.rspamd.com:11335/AAAA/IN‘: 2001:500:a8::e#53
        Nov 25 14:16:01 ip-00-000-00-000 CRON[7809]: (root) CMD (/usr/local/ispconfig/server/cron.sh 2>&1 | while read line; do echo `/bin/date` „$line“ >> /var/log/ispconfig/cron.log; done)
        Nov 25 14:16:01 ip-00-000-00-000 CRON[7811]: (panopta-agent) CMD ( /usr/bin/python /usr/bin/panopta-agent/panopta_agent.py –from-cron &> /dev/null)
        Nov 25 14:16:01 ip-00-000-00-000 CRON[7810]: (root) CMD (/usr/local/ispconfig/server/server.sh 2>&1 | while read line; do echo `/bin/date` „$line“ >> /var/log/ispconfig/cron.log; done)
        Nov 25 14:17:01 ip-00-000-00-000 CRON[7834]: (panopta-agent) CMD ( /usr/bin/python /usr/bin/panopta-agent/panopta_agent.py –from-cron &> /dev/null)
        Nov 25 14:17:01 ip-00-000-00-000 CRON[7836]: (root) CMD ( cd / && run-parts –report /etc/cron.hourly)
        Nov 25 14:17:01 ip-00-000-00-000 CRON[7835]: (root) CMD (/usr/local/ispconfig/server/cron.sh 2>&1 | while read line; do echo `/bin/date` „$line“ >> /var/log/ispconfig/cron.log; done)
        Nov 25 14:17:01 ip-00-000-00-000 CRON[7838]: (root) CMD (/usr/local/ispconfig/server/server.sh 2>&1 | while read line; do echo `/bin/date` „$line“ >> /var/log/ispconfig/cron.log; done)

        IP habe ich aus sicherheitsgründen geändert.

        • JARVIS

          Hi,
          ne da steht nichts relevantes drin. Das hilft leider Null. Ich würde sagen, schau nochmal nach was wie wo konfiguriert werden muss, denn ich vermute irgendwo einen Typofehler.

  2. André Schmidt

    Schöne Anleitung! Hat fast gut funktioniert!

    Verbesserungen:
    1. Bei „PHP 5.6 hinzufügen“ sind mehrere APT-GET Befehle in einer Reihe geschrieben. Also entweder zwei Zeilen daraus machen oder ein && dazwischen. Dann klappt Copy & Paste besser!
    2. Ich habe länger gesucht, bis ich bei ISPConfig die Auswahlmöglichkeit der PHP-Version entdeckt habe.
    Nochmal darauf hinweisen, dass als PHP-FPM ausgewählt werden muss, damit man die Versionsauswahl vorliegen hat.

    Ansonsten: Hat alles gut geklappt!

    Vielen Dank für dieses Tutorial!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert