Webcluster: Update auf PHP 5.6

Nachdem die derzeit auf dem Webcluster installierte PHP-Version 5.5 nur noch bis zum 10. Juli unterstützt wird, werden wir unsere Server in einigen Wochen auf PHP 5.6 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:
http://www.php.net/manual/de/migration55.deprecated.php
Für PHP 5.6 entsprechend:
http://www.php.net/manual/de/migration56.deprecated.php
Nicht abwärtskompatible Features von PHP 5.6:
http://php.net/manual/de/migration56.incompatible.php
Und zu guter Letzt auch einige neue Features:
http://php.net/manual/de/migration56.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.208 ein. In etwa:
131.188.16.208 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_STRICT | E_DEPRECATED & ~E_NOTICE
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 IfDefine-Block setzt, dann kann man das Logverhalten des Testsystems separat vom Produktivsystem konfigurieren:

    <IfDefine infodev>
      php_value error_reporting 2147483647
      php_flag display_errors 1
    </IfDefine>
  • 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 ($_SERVER['SERVERFARM'] === 'infodev')
    {
      error_reporting(E_ALL | E_STRICT);
      ini_set("display_errors", 1);
    }

Unsere Webserver werden am 01.06.2016 auf PHP 5.6 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. Wir werden bis zum 10.07.2016 einen Server mit der alten PHP-Version bereitstellen.