Webseitenbesucher sollten überhaupt keine Fehlermeldungen sehen, auch um Angreifer nicht auf mögliche Sicherheitslücken hinzuweisen, die sich aus einer fehlerhaften Programmierung ergeben könnten.
In der Konfigurationsdatei wp-config.php
kannst du einen Debug-Modus zur Fehleranalyse einstellen, damit während der Fehlersuche Fehlermeldungen ausgegeben werden. Dazu gibt es die Zeile
define( 'WP_DEBUG', true );
Kritisch ist hierbei, dass Fehlermeldungen auch im Frontend ausgegeben werden, also für alle Webseitenbesucher sichtbar sind. Mit
define( 'WP_DEBUG', false );
werden diese Fehlermeldungen abgestellt und mit einem zusätzlichen
@ini_set( 'display_errors', 0 );
werden auch von PHP erzeugte Fehlermeldungen unterdrückt. Im schlimmsten Fall sehen die Webseitenbesucher dann nur eine leere Webseite, den berühmten „White Screen of Death“.
Das Problem ist, dass du damit nicht herausfindest, was eigentlich das Problem ist. Ein guter Mittelweg ist, Fehlermeldungen nicht auszugeben, sondern in eine Datei protokollieren zu lassen. Dazu erweiterst du die Debug-Zeile in der wp-config.php
folgendermaßen:
/ Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
(Quelle: Debugging in WordPress)
Der Debug-Modus wird also eingeschaltet, die Protokollierung in einer Datei wp-content/debug.log
aktiviert, die Ausgabe der Fehler im Frontend deaktviert und die Ausgabe von PHP-Fehlermeldungen ausgeschaltet. Über die log-Datei erhältst du Hinweise zu möglichen Problemen, während Webseitenbesucher unbehelligt bleiben. Hier gibt es nur zwei Nachteile: du musst regelmäßig die log-Dateien prüfen und dich nicht darauf verlassen, dass da wohl nichts drin stehen wird und du kannst den „White Screen of Death“ nicht verhindern.
Eine Website eines Kunden war mal für ein halbes Jahr offline, weil sich in der Zeit niemand um die Website gekümmert hat und der Fehler nicht aufgefallen war. Um das zu vermeiden, habe ich ein Monitoring mit der OpenSource-Software phpServerMonitor eingerichtet, das mehrmals täglich prüft, ob ein bestimmter Text auf der Webseite (z.B. „Stolz präsentiert mit WordPress“) abgerufen werden kann. Falls nicht, erhalte ich eine E-Mail, sobald der Aufruf der Website nicht klappt und schaue mir dann an, ob es sich um einen kurzen Aussetzer handelt (es reicht, wenn die eigene Internetverbindung kurzzeitig gestört war) oder Handlungsbedarf besteht.