ISPConfig3 mit PHP 7.1 und PHP 7.2 für Apache

Installiert ist Debian Stretch, was zuvor von Jessie aktualisiert wurde. Dementsprechend ist PHP 5.6.x und PHP 7.0.x installiert. Nachfolgend soll zusätzlich PHP 7.1 und PHP 7.2 als FastCGI und PHP-FPM unter Apache installiert werden.

Als Erinnerung zum Ende des Security Support der PHP-Versionen:

  • PHP 5.6
    • bis 31.12.2018
    • aktuell = 5.6.38
  • PHP 7.0
    • bis 03.12.2018
    • aktuell = 7.0.32
  • PHP 7.1
    • bis 01.12.2019
    • aktuell = 7.1.23
  • PHP 7.2
    • bis 30.11.2020
    • aktuell = 7.2.11

Ich werde hier folgende PHP Module installieren (todo):

  • intl

Vorbereitun


# apt-get install build-essential nano

# apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev

PHP und IMAP Support

# ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

# cd /usr/include
# ln -s x86_64-linux-gnu/curl

PHP 7.1 FastCGI und PHP-FPM installieren


# mkdir -p /opt/php-7.1
# mkdir /usr/local/src/php7.1-build
# cd /usr/local/src/php7.1-build
# wget http://de2.php.net/get/php-7.1.23.tar.bz2/from/this/mirror -O php-7.1.23.tar.bz2
# tar jxfv php-7.1.23.tar.bz2
# cd php-7.1.23/

./configure --prefix=/opt/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --enable-fpm

# make
# make test

# make install

Nun php.ini und php-fpm.conf kopieren:

# cp /usr/local/src/php7.1-build/php-7.1.23/php.ini-production /opt/php-7.1/lib/php.ini
# cp /opt/php-7.1/etc/php-fpm.conf.default /opt/php-7.1/etc/php-fpm.conf
# cp /opt/php-7.1/etc/php-fpm.d/www.conf.default /opt/php-7.1/etc/php-fpm.d/www.conf

Nun nachfolgende Optionen in der php-fpm.conf aktivieren

  1. # nano /opt/php-7.1/etc/php-fpm.conf
    1. pid = run/php-fpm.pid
    2. error_log=log/php-fpm.log

PHP – freien Port (8998 oder 8999 oder 9000) einstellen

  1. benutzte(r) Port anzeigen: # netstat -tulpn |grep php-fpm
    tcp 0 0 127.0.0.1:9002 0.0.0.0:* LISTEN 1867/php-fpm.conf)
    tcp 0 0 127.0.0.1:9003 0.0.0.0:* LISTEN 1869/php-fpm.conf)
  2. neuen Port setzen: # nano /opt/php-7.1/etc/php-fpm.d/www.conf
    1. listen = 127.0.0.1:9004

Systemd Unit File erstellen
# nano /lib/systemd/system/php-7.1-fpm.service

[Unit]
Description=The PHP 7.1 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-7.1/var/run/php-fpm.pid
ExecStart=/opt/php-7.1/sbin/php-fpm --nodaemonize –-fpm-config /opt/php-7.1/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target

Service aktivieren und Starten
# systemctl enable php-7.1-fpm.service
# systemctl daemon-reload
# systemctl start php-7.1-fpm.service
Status prüfen:
# systemctl status -l php-7.1-fpm.service

Zend OPcache aktivieren

  1. nano /opt/php-7.1/lib/php.ini und am Ende folgendes hinzufügen: zend_extension=opcache.so
  2. PHP Version testen:
    1. # cd /opt/php-7.1/bin
    2. # ./php --version
      PHP 7.1.23 (cli) (built: Oct 23 2018 18:27:10) ( NTS )
      Copyright (c) 1997-2018 The PHP Group
      Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
      with Zend OPcache v7.1.23, Copyright (c) 1999-2018, by Zend Technologies

Memcached aktivieren

Installieren: # apt-get install libmemcached-dev

nun in PHP 7.1 einbinden:
# mkdir /usr/local/src/php7.1-build/php-memcache
# cd /usr/local/src/php7.1-build/php-memcache
# wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
# unzip php7.zip
# cd php-memcached-php7
# /opt/php-7.1/bin/phpize
# ./configure --with-php-config=/opt/php-7.1/bin/php-config
# make
# make test

# make install

Memcache Extension in PHP 7.1 an das Ende hinzufügen
# nano /opt/php-7.1/lib/php.ini
extension=memcached.so

xDebug aktivieren

# cd /opt/php-7.1/etc
# pecl -C ./pear.conf update-channels
# pecl -C ./pear.conf install xdebug

Extension an das Ende hinzufügen:
# nano /opt/php-7.1/lib/php.ini
zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
# systemctl start php-7.1-fpm.service
# systemctl status -l php-7.1-fpm.service

PHP 7.1 in ISPConfig aktivieren


Im Menü unter: unter Sysetm > Zusätzliche PHP Versionen (System > Additional PHP Versions) neue Version hinzufügen.

ISPConfig - weitere PHP Versionen

ISPConfig – weitere PHP Versionen

Dort im ersten Reiter “Name” ensprechend “PHP7.1” eintragen.

ISPConfig PHP Version Name

ISPConfig PHP Version Name

Im Reiter “FastCGI Settings” folgendes eintragen:

Path to the PHP FastCGI binary: /opt/php-7.1/bin/php-cgi
Path to the php.ini directory: /opt/php-7.1/lib

ISPConfig Add PHP 7.1 FastCGI Paths

ISPConfig Add PHP 7.1 FastCGI Paths

Nun im Reiter “PHP-FPM Settings” folgendes eintragen:

Path to the PHP-FPM init script: /lib/systemd/system/php-7.1-fpm .service
Path to the php.ini directory: /opt/php-7.1/lib
Path to the PHP-FPM pool directory: /opt/php-7.1/etc/php-fpm.d

ISPConfig Add PHP 7.1 FPM Paths

ISPConfig Add PHP 7.1 FPM Paths

Abschließend die Konfiguration Speichern

aufräumen und Downloads löschen# rm /usr/local/src/php7.1-build


PHP 7.2 FastCGI und PHP-FPM installieren


# mkdir -p /opt/php-7.2
# mkdir /usr/local/src/php7.2-build
# cd /usr/local/src/php7.2-build
# wget http://de2.php.net/get/php-7.2.11.tar.bz2/from/this/mirror -O php-7.2.11.tar.bz2
# tar jxfv php-7.2.11.tar.bz2
# cd php-7.2.11/

./configure --prefix=/opt/php-7.2 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --enable-fpm

# make
# make test

# make install

Fehler kann ignoriert werden –

PEAR package PHP_Archive not installed: generated phar will require PHP’s phar extension be enabled.

Nun php.ini und php-fpm.conf kopieren:

# cp /usr/local/src/php7.2-build/php-7.2.11/php.ini-production /opt/php-7.2/lib/php.ini
# cp /opt/php-7.2/etc/php-fpm.conf.default /opt/php-7.2/etc/php-fpm.conf
# cp /opt/php-7.2/etc/php-fpm.d/www.conf.default /opt/php-7.2/etc/php-fpm.d/www.conf

Nun nachfolgende Optionen in der php-fpm.conf aktivieren

  1. # nano /opt/php-7.2/etc/php-fpm.conf
    1. pid = run/php-fpm.pid
    2. error_log=log/php-fpm.log

PHP – freien Port (8998 oder 8999 oder 9000) einstellen

  1. benutzte(r) Port anzeigen: # netstat -tulpn |grep php-fpm
    tcp 0 0 127.0.0.1:9002 0.0.0.0:* LISTEN 1867/php-fpm.conf)
    tcp 0 0 127.0.0.1:9003 0.0.0.0:* LISTEN 1869/php-fpm.conf)
  2. neuen Port setzen: # nano /opt/php-7.2/etc/php-fpm.d/www.conf
    1. listen = 127.0.0.1:9004

Systemd Unit File erstellen
# nano /lib/systemd/system/php-7.2-fpm.service

[Unit]
Description=The PHP 7.2 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-7.2/var/run/php-fpm.pid
ExecStart=/opt/php-7.2/sbin/php-fpm –nodaemonize –fpm-config /opt/php-7.2/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target

Service aktivieren und Starten
# systemctl enable php-7.2-fpm.service
# systemctl daemon-reload
# systemctl start php-7.2-fpm.service
Status prüfen:
# systemctl status -l php-7.2-fpm.service

Zend OPcache aktivieren

  1. nano /opt/php-7.2/lib/php.ini und am Ende folgendes hinzufügen: zend_extension=opcache.so
  2. PHP Version testen:
    1. # cd /opt/php-7.2/bin
    2. # ./php --version
      PHP 7.2.11 (cli) (built: Oct 24 2018 14:35:38) ( NTS )
      Copyright (c) 1997-2018 The PHP Group
      Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
      with Zend OPcache v7.2.11, Copyright (c) 1999-2018, by Zend Technologies

Memcached aktivieren

Installieren: # apt-get install libmemcached-dev

nun in PHP 7.2 einbinden:
# mkdir /usr/local/src/php7.2-build/php-memcache
# cd /usr/local/src/php7.2-build/php-memcache
# wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
# unzip php7.zip
# cd php-memcached-php7
# /opt/php-7.2/bin/phpize
# ./configure --with-php-config=/opt/php-7.2/bin/php-config
# make
# make test

# make install

Memcache Extension in PHP 7.2 an das Ende hinzufügen
# nano /opt/php-7.2/lib/php.ini
extension=memcached.so

xDebug aktivieren

# cd /opt/php-7.2/etc
# pecl -C ./pear.conf update-channels
# pecl -C ./pear.conf install xdebug

Extension an das Ende hinzufügen:
# nano /opt/php-7.2/lib/php.ini
zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
# systemctl start php-7.2-fpm.service
# systemctl status -l php-7.2-fpm.service

PHP 7.2 in ISPConfig aktivieren


Im Menü unter: unter Sysetm > Zusätzliche PHP Versionen (System > Additional PHP Versions) neue Version hinzufügen.

ISPConfig - weitere PHP Versionen

ISPConfig – weitere PHP Versionen

Dort im ersten Reiter “Name” ensprechend “PHP7.2” eintragen.

ISPConfig Add PHP 7.2 Name

ISPConfig Add PHP 7.2 Name

Im Reiter “FastCGI Settings” folgendes eintragen:

Path to the PHP FastCGI binary: /opt/php-7.2/bin/php-cgi
Path to the php.ini directory: /opt/php-7.2/lib

ISPConfig Add PHP 7.2 FastCGI Paths

ISPConfig Add PHP 7.2 FastCGI Paths

Nun im Reiter “PHP-FPM Settings” folgendes eintragen:

Path to the PHP-FPM init script: /lib/systemd/system/php-7.2-fpm .service
Path to the php.ini directory: /opt/php-7.2/lib
Path to the PHP-FPM pool directory: /opt/php-7.2/etc/php-fpm.d

ISPConfig Add PHP 7.2 FPM Paths

ISPConfig Add PHP 7.2 FPM Paths

Abschließend die Konfiguration Speichern

aufräumen und Downloads löschen# rm /usr/local/src/php7.2-build

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.