Installieren mehrerer PHP Versionen in ispconfig 3 und Debian 9

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.

1. System auf den neusten Stand bringen

Shell-Script
  1. apt-get update
  2. apt-get upgrade


2. Sury.org zur source.list hinzufügen

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

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


3. PHP Versionen installieren

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


PHP 5.6:

Code
  1. 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 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
  1. 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 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
  1. 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 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
  1. 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 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 (ACHTUNG: Bisher ist es LEDIGLICH die BETA !!!!)

Code
  1. 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 php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring php7.3-soap php7.3-common php7.3-opcache php7.3-mysql


4. 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


BEIDE Befehle ausführen und BEIDE auf DEFAULT setzen:

Code
  1. update-alternatives --config php
  2. update-alternatives --config php-cgi


5. Einrichten 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


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

6. Restarten der Dienste

Jetzt werden alle Dienste restartet:


Shell-Script
  1. systemctl restart php5.6-fpm
  2. systemctl restart php7.0-fpm
  3. systemctl restart php7.1-fpm
  4. systemctl restart php7.2-fpm
  5. systemctl restart php7.3-fpm
  6. systemctl restart apache2


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


Shell-Script
  1. #!/bin/sh
  2. echo "Restarting Services....";
  3. systemctl restart php5.6-fpm
  4. systemctl restart php7.0-fpm
  5. systemctl restart php7.1-fpm
  6. systemctl restart php7.2-fpm
  7. systemctl restart php7.3-fpm
  8. systemctl restart apache2
  9. echo "Done...";


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.


#ispconfig #php #debian

    Kommentare 1

    • Hallo,

      finde deine Aktivitäten super. Eine Frage, ich möchte lediglich PHP 7.3 nutzen und wollte nun wissen

      a) ob ich den Upgrade part wie in 7.3 beschrieben noch nutzen kann (ist es aus der beta raus?)

      b) und dadurch das 7.0 bei meinem Debian 9 ersetzt wird. Ich nutze meine Server alleine und alles kann PHP 7.3


      Danke vorab,

      Aalnase