Webcluster: Update auf PHP 7.1

Nachdem die derzeit auf dem Webcluster installierte PHP-Version 5.6 nicht mehr aktiv weiterentwickelt wird, werden wir unsere Server in einigen Wochen auf PHP 7.1 aktualisieren.

Für aktuell gehaltene Content-Management-Systeme, Wikis oder Blogsysteme sollte das kein Problem darstellen. Bei älteren Systemen oder Eigenentwicklungen lohnt sich – auch derzeit schon – ein Blick in die Logdateien. Diese können Sie im Webmasterportal einsehen. Sollten dort Hinweise auf Funktionen auftauchen, die „deprecated“ sind, also in zukünftigen PHP-Versionen nicht mehr unterstützt werden, können Sie in der Dokumentation nachlesen, wie Sie Ihren Code am besten umbauen.

Funktionen, die derzeit schon veraltet sind, finden sich hier:
https://php.net/manual/de/migration56.deprecated.php
Für PHP 7.0 (der Zwischenschrit, den wir auslassen) und PHP 7.1 entsprechend:
https://php.net/manual/de/migration70.deprecated.php
https://php.net/manual/de/migration71.deprecated.php
Nicht abwärtskompatible Features von PHP 7.0 und PHP 7.1:
https://php.net/manual/de/migration70.incompatible.php
https://php.net/manual/de/migration71.incompatible.php
Und zu guter Letzt auch einige neue Features:
https://php.net/manual/de/migration70.new-features.php
https://php.net/manual/de/migration71.new-features.php

Damit es dabei zu möglichst wenig Problemen kommt, stellen wir vorab die Möglichkeit zur Verfügung, den eigenen Webauftritt mit der neuen Version zu testen.

Bearbeiten Sie dazu die Hosts-Datei Ihres Client-Rechners und tragen dort als Server-IP die 131.188.16.201 (IPv4) bzw. 2001:638:a000:1080::201 (IPv6) ein. In etwa:
131.188.16.201 www.beispiel.fakultaet.fau.de
Dieses Testsystem ist weltweit erreichbar.

Auf unseren Systemen ist die Fehlerbehandlung von PHP folgendermaßen konfiguriert:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
log_errors = On

Geloggt werden also alle Fehlermeldungen, explizit mit Hinweisen zu Coding-Standards und veralteten Funktionen. Ausgenommen sind Meldungen, die lediglich Hinweischarakter haben. Fehlermeldungen werden nur in die Logdatei geschrieben und nicht mit dem Seitenquellcode ausgegeben.

Im eigenen Webauftritt können Sie die Fehleranzeige auf zwei Arten verändern:

  • Mittels .htaccess-Datei lässt sich die Fehlerausgabe per php_value/php_flag setzen. Wenn man diese Definitionen noch in einen IfModule-Block setzt, dann kann man das Logverhalten des Testsystems separat vom Produktivsystem konfigurieren:

    <IfModule php7_module>
    php_value error_reporting -1
    php_flag display_errors 1
    </IfModule>
  • Direkt in den Skripten kann man die Fehlerausgabe auch ändern:

    error_reporting(E_ALL | E_STRICT);
    ini_set("display_errors", 1);

    Auch hier kann man die Einstellungen ausschließlich für das Testsystem ändern:

    if (version_compare(PHP_VERSION, '7.1.0') >= 0)
    {
    error_reporting(E_ALL | E_STRICT);
    ini_set("display_errors", 1);
    }

Unsere Webserver werden am 18.10.2017 auf PHP 7.1 umgestellt. Sollten Sie beim Test Ihres Webauftritts Probleme feststellen, von denen absehbar ist, dass Sie diese nicht bis zu diesem Datum beheben können, melden Sie sich bitte bei webmaster@fau.de. Aller Voraussicht nach werden wir bis 15.03.2018 einen Server mit PHP 5.6 bereitstellen.