PHP Error Log einrichten

Beschreibung: Auf einem Virtuellen oder Hosted Server Fehlermeldungen und Warnungen von PHP in einem Log protokollieren

Kategorie: Installation und Update

Link zu diesem Artikel: Alles auswählen

[url=https://www.phpbb.de/kb/viewarticle?a=110&sid=45fd1d987c0dff799ee36ccee9af952b]Knowledge Base - PHP Error Log einrichten[/url]

Irgendwann kann es bei jedem vorkommen: Das Forum zeigt nicht den gewünschten Startbildschirm, z.B. den Forenindex, sondern im schlimmsten Falle gar nichts mehr. In aller Regel ist die Ursache ein Fehler bei der Abarbeitung eines PHP-Skriptes. Das Gute ist, dass PHP dazu eine Meldung generiert, die aber nicht angezeigt wird. Muss sie auch nicht, denn wer vorbeugt und z.B. bei der Einrichtung des Forums auch gleich das Speichern dieser Meldungen einrichtet, ist im Fall des Falles fein raus und kann sofort nachsehen, wo es hakt.

Die meisten Hoster ermöglichen es ihren Kunden auch im Falle von Virtuellen und Hosted Servern die Meldungen zu protokollieren, ohne dass auf die Systemdateien des Servers zugegriffen werden muss.

Es gibt aktuell zwei, früher drei Möglichkeiten, das Speichern von PHP-Meldungen einzurichten, welche davon der eigene Hoster anbietet, sollte in seinen FAQs zu finden sein, notfalls hilft ein Anruf bei der Support-Hotline.

Alle drei Möglichkeiten haben gemeinsam, dass man für seinen eigenen Webspace etwas in eine Textdatei im Root-Verzeichnis des Forums eintragen muss, wir wollen diese Fälle hier etwas näher betrachten, wobei zu beachten ist, dass die Details zur Notation des Verzeichnisses, in dem die Log-Datei abgelegt wird, von Hoster zu Hoster variiert.
  • Die erste Möglichkeit (ab PHP 8.x die üblichste) ist mittels einer als .user.ini bezeichneten Datei, mit dieser Methode arbeitet z.B. all-inkl, sie sollte folgende Einträge enthalten:

    Code: Alles auswählen

    error_reporting = -1
    error_log = /pfad/dateiname
    log_errors = On
    display_errors = Off
    
  • Die zweite Möglichkeit besteht darin, eine Datei namens php.ini zu erzeugen, dies ist z.B. bei IONOS so, die folgende Einträge hat:

    Code: Alles auswählen

    error_reporting = E_ALL;
    log_errors = On;
    display_errors = Off;
    error_log = /pfad/dateiname;
    
  • Bis einschließlich PHP 7.4 war es möglich, in die Datei .htaccess folgendes einzutragen:

    Code: Alles auswählen

    php_flag log_errors On
    php_value error_log /pfad/dateiname
    
    Mit dem Update auf PHP 8.x wird diese Methode ncht mehr funktionieren, sie wird hier nur der Vollständigkeit halber erwähnt.
pfad ist eine vom jeweiligen Hoster abhängige absolute Pfadangabe zum Verzeichnis, in dem das Forum gespeichert ist, entweder aus den FAQs lesen oder den Support fragen.
dateiname ist der Name der (Text-)Datei, in der die Meldungen abgespeichert werden, gewöhnlich wird dafür php_error.log verwendet. Sie wird automatisch erzeugt, wenn ein Fehler auftritt, muss also nicht händisch angelegt werden.