Am 3.12.2015 wurde PHP 7 freigegeben. Erfreulich kurz danach war es auch per Plesk als zusätzliche PHP-Version verfügbar – einfach per Plesk-Installer wählbar. Es funktioniert auch – ich habe bereits 2 Ubuntu-Server (12.04 und 14.04) darauf umgestellt. Allerdings fehlen zwei PHP Module, die manche brauchen werden: der Ioncube-Loader und Redis. In den anderen PHP-Versionen (5.5, 5.6) von Plesk gab es Redis, aber nicht ältere PHP-Beschleuniger (Userland-Cache) wie memcache(d) oder APCu – denn Redis ist jünger und hat diverse Vorzüge – ich verstand dass so, dass die Plesk-Macher die Praktiker in Richtung Redis bewegen wollten, und machte mit. Alles auf Redis umgestellt – und jetzt fehlt es bei PHP 7.
Aber Redis- im Gegensatz zu vielen alt-vertrauten Module wie z.B. igbinary – ist doch schon für PHP 7 zu haben, man muss nur wissen, wo und wie, und das Modul selbst übersetzen. Folgender Script erzeugt redis.so und meldet es auch bei Plesk an (setzt voraus dass Sie alle OS-Pakete geladen haben, die zur Übersetzung nötig sind):
#! /bin/bash apt-get update apt-get install plesk-php70-dev cd /opt/plesk/php/7.0/include/php/ext wget -O phpredis-php7.zip https://github.com/phpredis/phpredis/archive/php7.zip unzip phpredis-php7.zip cd phpredis-php7 /opt/plesk/php/7.0/bin/phpize ./configure --with-php-config=/opt/plesk/php/7.0/bin/php-config export CFLAGS="-march=native -O2 -fomit-frame-pointer -pipe" make make install ls -la /opt/plesk/php/7.0/lib/php/modules/ echo "extension=redis.so" >/opt/plesk/php/7.0/etc/php.d/redis.ini /usr/local/psa/bin/php_handler --reread # service plesk-php70-fpm restart
Weitere Tipps
Noch gibt es einen Bug in Plesk: Wenn Sie die erste Website mit PHP-FPM via Nginx versorgen wollen, klappt das nicht, man muss ihm anschließend manuell auf die Sprünge helfen. Ich habe das Problem hier im Plesk-Forum gemeldet. Sobald PHP-7-FPM läuft, gehen weitere Umstellungen ohne Problem.
Vorschläge für PHP 7 php.ini
- html_errors = Off - user_ini.filename set empty - realpath_cache_size = 128k - date.timezone = Europe/Berlin - Old mysql driver has now been removed - mysqlnd.collect_statistics = Off - Old Sybase driver has now been removed - session.serialize_handler = php remains set until igbinary available - Old MSSQL driver has now been removed - zend.assertions = -1 See http://php.net/zend.assertions - Instate "your" opcache values
Welche Apps laufen schon mit PHP 7?
- WordPress 4.4 (ohne Gewähr dass alle Ihrer Plugins funktionieren)
- ownCloud 8.2.1 – aber nicht das Kalendar-App, welches gerade ein rework erhält.
Ob die notierten Probleme mit Paket-Abhängigkeiten schon korrigiert sind weiß ich nicht – ich installiere OC manuell. - PHP-Code, der in den letzten Jahren nach „good practice“ geschrieben wurde, läuft auf PHP 7 ohne Probleme.