Linux:Debian:Mehrerer PHP Versionen

Aus ITWiki
Zur Navigation springen Zur Suche springen

1 System aktualisieren

# apt update
# apt upgrade
# apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https

2 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
# apt-key add apt.gpg
# apt-key add php.gpg
# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# apt update
# apt upgrade

Hierbei wird die Standard-Version von Debian aktualisiert.

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 (FIXME)

3.1 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

3.2 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

3.3 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

3.4 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

3.5 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

3.6 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

4 Standard-PHP-Versionen einstellen

Durch die Installation der PHP-Pakete von sury.org, wurde die Default PHP Version in Debian auf die neuste PHP Version geändert. Um Probleme zu vermeiden sollte diese auf Standard zurück gesetzt.

Debian Standard-PHP-Versionen

  • Debian 8: PHP 5.6
  • Debian 9: PHP 7.0
  • Debian 10: PHP 7.3

Dies muss für php und php-cgi durchgeführt werden. Hier am Beispiel von Debian 10:

# update-alternatives --config php
There are 3 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.4   74        auto mode
  1            /usr/bin/php7.2   72        manual mode
  2            /usr/bin/php7.3   73        manual mode
  3            /usr/bin/php7.4   74        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/php7.3 to provide /usr/bin/php (php) in manual mode
# update-alternatives --config php-cgi
There are 3 choices for the alternative php-cgi (providing /usr/bin/php-cgi).

  Selection    Path                 Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php-cgi7.4   74        auto mode
  1            /usr/bin/php-cgi7.2   72        manual mode
  2            /usr/bin/php-cgi7.3   73        manual mode
  3            /usr/bin/php-cgi7.4   74        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2 
update-alternatives: using /usr/bin/php-cgi7.3 to provide /usr/bin/php-cgi (php-cgi) in manual mode

5 Einrichten in ISPconfig3

  • System > Zusätzliche PHP Versionen > Neue PHP Version hinzufügen

5.1 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

5.2 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

5.3 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

5.4 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

5.5 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

5.6 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

6 Dienste neu starten

# 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

7 Script zur Installation

  • Versionen werden nicht in ISPconfig eingetragen
#!/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

8 Quellen

9 Weblinks