Kurz und schmerzlos: PHP 7

Posted by jonas on Monday, December 7, 2015

Wir haben haben das erste Release von PHP 7 (also die 7.0.0) auf alle unsere Hosts verteilt. Aktiviert werden kann es wie gewohnt:

$ echo PHPVERSION=7.0 > ~/etc/phpversion
$ killall php-cgi

Wichtig: Wer sich eine eigene php.ini angelegt hat, sollte jene durch eine frisch angelegte Version auf Basis der zentralen php.ini ersetzen und ggf. vorgenommene Erweiterungen dort erneut vornehmen, ansonsten dürfte insbesondere der opcache-Support, für den ein Modul über die php.ini geladen wird, nicht funktional sein. Wer eigene PECL-Module kompiliert hat, muss jene für PHP 7 neu bauen, da sich die API-Version geändert hat (von 20131226 auf 20151012).

Ebenfalls wichtig, aber nur für CentOS-5-User: Hier gibt es leider keinen Support für die GNU MP Bibliothek mehr, denn PHP 7 verlangt nach GMP >= 4.2, CentOS 5 liefert aber nur die 4.1.4, die für PHP 5.6 noch ausreichend war. Unter CentOS 6 steht GMP-Support natürlich nach wie vor zur Verfügung. Wenn du GMP-Funktionen nutzt, solltest du insofern bis auf Weiteres bei PHP 5.6 bleiben - oder auf einen CentOS-6-Host wechseln.

PHP 7 wird auf unseren Hosts vorab noch nicht der Default werden, da wir zunächst noch abwarten möchten, ob beim Einsatz verbreiteter PHP-Applikationen größere Probleme mit dem neuen Release zu erwarten sind oder nicht. Der Migration Guide liefert viele wichtige Informationen; insbesondere ist zu beachten, dass der Support für die schon lange veraltete mysql-API nun abschließend eingestellt ist und nur noch die mysqli-API (“i” wie “improved”) sowie PDO_MySQL angeboten werden. Das dürfte insbesondere Software der etwas antikeren Art betreffen; gängige Content-Management-Systeme nutzen in der Regel ohnehin schon lange die moderneren APIs.

Sicherheitshalber auch nochmal der Hinweis: PHP 5.4 ist end of life, und alle noch älteren Versionen sowieso. Wer auf seinem Uberspace nicht mindestens PHP 5.5 in seiner ~/etc/phpversion stehen hat, sollte das Upgrade zum Anlass nehmen, dringend zu schauen, dass er seine Applikationen entsprechend migriert bekommt.