Debian/PHP/Versionen
ISPconfig3 hat die Möglichkeit, mehrere PHP Versionen zu verwalten. Hierbei wird die Version von Debian aktualisiert.
System aktualisieren
# apt update # apt upgrade
Sury.org-Repository hinzufügen
Es sind Pakete für Debian 8 bis 10 verfügbar
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
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
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
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
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
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
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.
- Debian 8: PHP 5.6
- Debian 9: PHP 7.0
- Debian 10: PHP7.3
BEIDE Befehle ausführen und BEIDE auf DEFAULT setzen:
update-alternatives --config php update-alternatives --config php-cgi
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
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:
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:
#!/bin/sh echo "Restarting Services...."; 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 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:
#/bin/sh apt 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 echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt update apt upgrade 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 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 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 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 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 apt -y install php-zip php-zeroc-ice php-xml php-tcpdf php-ssh2 php-soap php-snmp php-redis php-php-gettext php-mysql php-pear php-net-smtp php-net-socket php-net-imap php-net-nntp php-mcrypt php-mbstring php-imap php-intl php-json php-imagick php-gnupg php-gd php-geoip php-fpm php-dev php-mail php-mail-mime php-curl php-cli php-cgi php-bz2 php-bcmath php-apcu php-auth-sasl php-apcu-bc apt -y install mcrypt imagemagick libruby curl update-alternatives --config php update-alternatives --config php-cgi
Quellen
- https://www.goover.de/article/5-installieren-mehrerer-php-versionen-in-ispconfig-3-f%C3%BCr-debian-8-debian-9-debian/
- https://www.itzgeek.com/how-tos/linux/debian/how-to-install-php-7-3-7-2-7-1-on-debian-10-debian-9-debian-8.html
- https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9/