Debian/PHP/Versionen

Aus Foxwiki
Version vom 8. Dezember 2019, 18:16 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Mit ispconfig3 haben wir die Möglichkeit, mehrere PHP Versionen zu verwalten und zu installieren, um diese einzelnen Webs zuzuordnen. Hier Zeige ich Euch, wie…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Mit ispconfig3 haben wir die Möglichkeit, mehrere PHP Versionen zu verwalten und zu installieren, um diese einzelnen Webs zuzuordnen. Hier Zeige ich Euch, wie man das am einfachsten macht. 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

# apt-get update
# apt-get upgrade

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

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

apt-get 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-get update
apt-get upgrade

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

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

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

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

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

PHP 7.4

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 php-memcache php-imagick php-gettext php7.4-zip php7.4-mbstring php7.4-soap php7.4-common php7.4-opcache php7.4-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
  • Für Debian 10 wählen wir: PHP7.3

BEIDE Befehle ausführen und BEIDE auf DEFAULT setzen:

update-alternatives --config php
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

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.

6. 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-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
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get upgrade
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
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
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
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
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
apt-get -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-get -y install mcrypt imagemagick libruby curl
update-alternatives --config php
update-alternatives --config php-cgi