Plesk 12 mit PHP 7 und Redis

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.

Schreibe einen Kommentar

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