ISPConfig – zusätzlich PHP 7.1.0 unter Debian Jessie bereitstellen

Nachfolgend beschreibe ich die zusätzliche Installation von PHP in Version 7.1.0, unter dem Server Control Panel ISPConfig, als PHP-FPM und FastCGI Modul. Ich werde in der Anleitung PHP 7.1 in das Verzeichnis /opt/php/7.1.0 installieren. Hintergrund ist so die Möglichkeit weitere Updates ohne größere Ausfallzeiten für die Webseiten durchzuführen. Es muss lediglich ein Symlink gesetzt werden.

Seitens der PHP-Cache Möglichkeiten gibt es aktuell nur die Unterstützung durch Zend OPcache und Memcached, Memcache wird nicht mehr entwickelt und daher auch nicht für PHP 7 unterstützt. Selbes gilt wohl auch für XCache was ebenfalls nicht mehr für PHP7 entwickelt und unterstützt wird.

Installation PHP 7.1 unter ISPConfig 3

  1. PHP 7.1 Voraussetzungen sowie Midnight Commander / Nano zum editieren der Konfiguration installieren
    1. # aptitude install build-essential mc nano autoconf
  2. Verzeichnis erstellen
    1. # mkdir -p /opt/php/7.1
    2. # mkdir  -p /opt/php/7.1.0
  3. PHP 7.1 installieren
    1. # mkdir /usr/local/src/php7-build
    2. # cd /usr/local/src/php7-build
    3. # wget http://de1.php.net/get/php-7.1.0.tar.bz2/from/this/mirror -O php-7.1.0.tar.bz2
    4. # tar jxf php-7.1.0.tar.bz2
    5. # cd php-7.1.0/
  4. PHP 7.1 Module installieren
    1. # aptitude install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
    2. falls PHP mit –with-imap kompiliert wurde noch folgendes ausführen
      1. # ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
  5. PHP 7.1 mit PHP-FPM konfigurieren (Hilfe für Anpassungen mittels # ./configure –help)
    1. # ./configure –prefix=/opt/php/7.1.0 –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-fpm
    2. # make
    3. # make install
  6. PHP 7.1 Symlink setzen:
    1. # ln -sfn /opt/php/7.1.0/* /opt/php/7.1/
  7. PHP 7.1.0 php.ini kopieren
    1. # cp /usr/local/src/php7-build/php-7.1.0/php.ini-production /opt/php/7.1.0/lib/php.ini
  8. PHP 7.1.0  php-fpm.conf kopieren
    1. # cp /opt/php/7.1.0/etc/php-fpm.conf.default /opt/php/7.1.0/etc/php-fpm.conf
    2. # cp /opt/php/7.1.0/etc/php-fpm.d/www.conf.default /opt/php/7.1.0/etc/php-fpm.d/www.conf
  9. PHP 7.1.0 PID aktivieren
    1. # mcedit  /opt/php/7.1.0/etc/php-fpm.conf:
      1. pid = run/php-fpm.pid
      2. error_log=log/php-fpm.log
  10. PHP 7.1.0 freien Port (8998 oder 8999 oder 9000) einstellen
    1. benutzte(r) Port: # ps -aux |grep php-fpm
    2. neuen Port setzen: # mcedit /opt/php/7.1.0/etc/php-fpm.d/www.conf
      1. listen = 127.0.0.1:8998
  11. PHP 7.1.0 Systemd Skripte erstellen
    1. # mcedit /lib/systemd/system/php7.1-fpm.service
      # cat /lib/systemd/system/php7.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
    2. Service aktivieren und Systemd neustarten
      1. # systemctl enable php7.1-fpm.service
      2. # systemctl daemon-reload
    3. nun PHP-FPM starten
      1. # systemctl start php7.1-fpm.service
    4. Status des PHP 7.1 FPM Dienstes prüfen:
      1. # systemctl status -l php7.1-fpm.service
  12. Zend OPcache aktivieren
    1. # mcedit /opt/php/7.1.0/lib/php.ini und am Ende folgendes hinzufügen: zend_extension=opcache.so
    2. PHP Version testen:
      1. # cd /opt/php/7.1.0/bin
      2. # ./php –version
        PHP 7.1.0 (cli) (built: Dec 27 2016 01:07:15) ( NTS )
        Copyright (c) 1997-2016 The PHP Group
        Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
        with ZendOpcache v7.1.0, Copyright (c) 1999-2016 Zend Technologies
  13. Memcached aktivieren (optional)
    1. libmemcached-dev installieren: # aptitude install libmemcached-dev
    2. PHP memcached Exension von Github installieren:
      1. # mkdir /usr/local/src/php7-build/php-memcached
      2. # cd /usr/local/src/php7-build/php-memcached
      3. # wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
      4. # unzip php7.zip
      5. # cd php-memcached-php7
    3. Sources vorbereiten
      1. ausführen von # /opt/php/7.1.0/bin/phpize
        Configuring for:
        PHP Api Version: 20160303
        Zend Module Api No: 20160303
        Zend Extension Api No: 320160303
      2. PHP Memcache Extension erstellen
        # ./configure –with-php-config=/opt/php/7.1.0/bin/php-config
        # make
        # make install
      3. Memcache Extension aktivieren und ans Ender der Datei hinzufügen
        # mcedit /opt/php/7.1.0/lib/php.ini
        extension=memcached.so
  14. aufräumen und Download löschen:
    1. # rm /usr/local/src/php7-build/php-7.1.0.tar.bz2
    2. # rm -R /usr/local/src/php7-build/php-7.1.0
  15. PHP 7.1.0 in ISPConfig akivieren
    1. unter Sysetm > Zusätzliche PHP Versionen (System > Additional PHP Versions)
      ISPConfig - weitere PHP Versionen

      ISPConfig – weitere PHP Versionen

      1. Neue PHP Version hinzufügen / Add new PHP Version
        ISPConfig - PHP Version hinzufügen

        ISPConfig – PHP Version hinzufügen

        1. PHP Name : PHP 7.1

          ISPConfig PHP Version Name

          ISPConfig PHP Version Name

        2. Reiter FastCGI Settings – Pfad zum PHP FastCGI Binary :  /opt/php/7.1/bin/php-cgi
        3. Reiter FastCGI Einstellungen – Pfad zum php.ini Verzeichnis : /opt/php/7.1/lib

          ISPConfig PHP FastCGI

          ISPConfig PHP FastCGI

        4. Reiter PHP-FPM Einstellungen – Pfad zum PHP-FPM Init Script : /lib/systemd/system/php7.1-fpm .service
        5. Reiter PHP-FPM Einstellungen – Pfad zum php.ini Verzeichnis : /opt/php/7.1/lib
        6. Reiter PHP-FPM Einstellungen – Pfad zum PHP-FPM Pool Verzeichnis : /opt/php/7.1/etc/php-fpm.d

          ISPConfig PHP FPM Settings

          ISPConfig PHP FPM Settings

  16. Webseite auf PHP 7.1 umstellen
    1. Im Menü Webseiten / Websites die Webseite auswählen
    2. Reiter Domain und dort ganz unten die PHP Version auf 7.1 umstellen

      ISPConfig Webseite PHP 7.1 einstellen

      ISPConfig Webseite PHP 7.1 einstellen

!Achtung in der Version 3.1.1 von ISPConfig wird der gesetzte Symlink erkannt und aus Sicherheitsgründen geblockt. Somit wird die php.ini nicht geladen. Ein Bug (https://git.ispconfig.org/ispconfig/ispconfig3/issues/4408)  wurde bereits berichtet. Solange sollte der Pfad in ISPConfig auf die Version 7.1.0 verweisen. Ein Patch ist in mit der nächsten Version erwartet.

Schreibe einen Kommentar

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