Nachfolgend beschreibe ich die zusätzliche Installation von PHP in Version 7.0.16, unter dem Server Control Panel ISPConfig, als PHP-FPM und FastCGI Modul. Ich werde in der Anleitung PHP 7.0.16 in das Verzeichnis /opt/php/7.0.16 installieren und auf das Hauptverzeichznis 7.0 verlinken. 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.0.16 unter ISPConfig 3
- PHP 7.0 Voraussetzungen sowie Midnight Commander / Nano zum editieren der Konfiguration installieren
- # aptitude install build-essential mc nano autoconf
- Verzeichnis erstellen
- # mkdir -p /opt/php/7.0
- # mkdir -p /opt/php/7.0.16
- PHP 7.0 installieren
- # mkdir /usr/local/src/php7-build
- # cd /usr/local/src/php7-build
- # wget http://de1.php.net/get/php-7.0.16.tar.bz2/from/this/mirror -O php-7.0.16.tar.bz2
- # tar jxfv php-7.0.16.tar.bz2
- # cd php-7.0.16/
- PHP 7.0 Module installieren
- # 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
- falls PHP mit –with-imap kompiliert wurde noch folgendes ausführen
- # ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
- PHP 7.0 mit PHP-FPM konfigurieren (Hilfe für Anpassungen mittels # ./configure –help)
# ./configure --prefix=/opt/php/7.0.16 --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
- # make
- # make install
- PHP 7.0 Symlink setzen:
- # ln -sfn /opt/php/7.0.16/* /opt/php/7.0/
- PHP 7.0.16 php.ini kopieren
- # cp /usr/local/src/php7-build/php-7.0.16/php.ini-production /opt/php/7.0.16/lib/php.ini
- PHP 7.0.16 php-fpm.conf kopieren
- # cp /opt/php/7.0.16/etc/php-fpm.conf.default /opt/php/7.0.16/etc/php-fpm.conf
- # cp /opt/php/7.0.16/etc/php-fpm.d/www.conf.default /opt/php/7.0.16/etc/php-fpm.d/www.conf
- PHP 7.0.16 PID aktivieren
- # mcedit /opt/php/7.0.16/etc/php-fpm.conf:
- pid = run/php-fpm.pid
- error_log=log/php-fpm.log
- # mcedit /opt/php/7.0.16/etc/php-fpm.conf:
- PHP 7.0.16 freien Port (8998 oder 8999 oder 9000) einstellen
- benutzte(r) Port: # ps -aux |grep php-fpm
- neuen Port setzen: # mcedit /opt/php/7.0.16/etc/php-fpm.d/www.conf
- listen = 127.0.0.1:8998
- PHP 7.0.16 Systemd Skripte erstellen
- # mcedit /lib/systemd/system/php7.0-fpm.service
[Unit]
Description=The PHP 7.0 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php/7.0/var/run/php-fpm.pid
ExecStart=/opt/php/7.0/sbin/php-fpm –nodaemonize –fpm-config /opt/php/7.0/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target - Service aktivieren und Systemd neustarten
- # systemctl enable php7.0-fpm.service
- # systemctl daemon-reload
- nun PHP-FPM starten
- # systemctl start php7.0-fpm.service
- Status des PHP 7.0 FPM Dienstes prüfen:
- # systemctl status -l php7.0-fpm.service
- # mcedit /lib/systemd/system/php7.0-fpm.service
- Zend OPcache aktivieren
- # mcedit /opt/php/7.0.16/lib/php.ini und am Ende folgendes hinzufügen: zend_extension=opcache.so
- PHP Version testen:
- # cd /opt/php/7.0.16/bin
- # ./php –version
PHP 7.0.16 (cli) (built: Mar 10 2017 16:45:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.16, Copyright (c) 1999-2017, by Zend Technologies
- Memcached aktivieren (optional)
- libmemcached-dev installieren: # aptitude install libmemcached-dev
- PHP memcached Exension von Github installieren:
- # mkdir /usr/local/src/php7-build/php-memcached
- # cd /usr/local/src/php7-build/php-memcached
- # wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
- # unzip php7.zip
- # cd php-memcached-php7
- Sources vorbereiten
- ausführen von # /opt/php/7.0.16/bin/phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303 - PHP Memcache Extension erstellen
# ./configure --with-php-config=/opt/php/7.0.16/bin/php-config
# make
# make install - Memcache Extension aktivieren und ans Ender der Datei hinzufügen
# mcedit /opt/php/7.0.16/lib/php.ini
extension=memcached.so
- ausführen von # /opt/php/7.0.16/bin/phpize
- aufräumen und Download löschen:
- # rm /usr/local/src/php7-build/php-7.1.0.tar.bz2
- # rm -R /usr/local/src/php7-build/php-7.1.0
- PHP 7.0 in ISPConfig akivieren
- unter Sysetm > Zusätzliche PHP Versionen (System > Additional PHP Versions)
- Neue PHP Version hinzufügen / Add new PHP Version
- PHP Name : PHP 7.0
- Reiter FastCGI Settings – Pfad zum PHP FastCGI Binary : /opt/php/7.0/bin/php-cgi
- Reiter FastCGI Einstellungen – Pfad zum php.ini Verzeichnis : /opt/php/7.0/lib
- Reiter PHP-FPM Einstellungen – Pfad zum PHP-FPM Init Script : /lib/systemd/system/php7.0-fpm.service
- Reiter PHP-FPM Einstellungen – Pfad zum php.ini Verzeichnis : /opt/php/7.0/lib
- Reiter PHP-FPM Einstellungen – Pfad zum PHP-FPM Pool Verzeichnis : /opt/php/7.0/etc/php-fpm.d
- Neue PHP Version hinzufügen / Add new PHP Version
- unter Sysetm > Zusätzliche PHP Versionen (System > Additional PHP Versions)
- Webseite auf PHP 7.0 umstellen
- Im Menü Webseiten / Websites die Webseite auswählen
- Reiter Domain und dort ganz unten die PHP Version auf 7.0 umstellen
!Achtung in der ISPConfig Version bis aktuell 3.1.2 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.0.16 verweisen. Ein Patch wird in eine der nächsten Versionen erwartet.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.