Wie aktiviere ich den Debug-Modus?

Der Debug-Modus ist nicht nur bei der Fehlersuche, sondern auch bei der Entwicklung eines Themes oder Plugins von großer Bedeutung. Aus Sicherheitsgründen ist diese Funktion standardmäßig deaktiviert, da damit unter Umständen sensible Informationen über den Server öffentlich sichtbar sind.

Das WordPress-spezifische Vorgehen

Den Debug-Modus aktivierst du in der Datei wp-config.php mit der folgenden Zeile:

define( 'WP_DEBUG', true );

Ist die Zeile nicht vorhanden, fügst du sie direkt am Anfang der Datei hinzu – das gilt natürlich auch für die nächsten beiden Paramter.

Der Debug-Modus kann Fehlermeldungen entweder direkt auf der Seite ausgeben (“inline”) oder in eine Datei speichern. Der folgende Parameter in der wp-config.php sorgt dafür, dass die Fehlermeldungen in der Datei debug.log im Ordner wp-content abgelegt werden:

define( 'WP_DEBUG_LOG', true ); 

Das ist vor allem dann sinnvoll, wenn du deine Seite über einen gewissen Zeitraum beobachten und Fehlermeldungen sammeln willst.

Die Fehlermeldungen werden standardmäßig auch auf der Seite ausgegeben. Willst du das verhindern, kannst du in der wp-config.php den folgenden Parameter nutzen:

define('WP_DEBUG_DISPLAY', false);

Daneben gibt es noch einige andere Parameter, die hier genauer beschrieben sind.

Die folgenden Absätze lassen sich übrigens auf jeden Webserver der PHP und Apache nutzt anwenden!

Das PHP-spezifische Vorgehen

Die oben beschriebenen Parameter sind eigentlich nur die vereinfachten Parameter. Im Hintergrund greift WordPress auf PHP-spezifische Parameter zurück. Wenn du auf Nummer Sicher gehen willst und ausschließen willst, dass WordPress fehlerhaft ist, kannst du die Fehlerausgabe auch ohne den Umweg über WordPress setzen.

error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set("log_errors", 1);
ini_set("error_log", "/pfad/zu/wordpress/temp/php-error.log");

Die erste Zeile aktiviert zunächst den PHP-Debug-Modus, die zweite Zeile sorgt dafür, dass die Meldungen auch auf der Seite angezeigt werden. Die beiden letzten Zeilen sind wiederum dafür da, die Fehler auch in einer Datei abzulegen.

Das Apache-spezifische Vorgehen

Das war aber noch nicht alles. Es geht tatsächlich noch einen Schritt “professioneller”, indem du den Web-Server (Apache) direkt dazu anleitest, Fehlermeldungen auszugeben. Und jetzt wird es wirklich kompliziert, denn hier kannst du eine Menge mehr einstellen. Die folgenden Parameter gehören in die .htacces-Datei im Hauptordner deiner Webseite:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on

#  Wenn du das volle Entertainment brauchst
# nimm auch das hier mit - für alle Copy&Paste-Cowbowys, die 
# den Warnhinweis nicht lesen, habe ich die Zeilen auskommentiert
# php_flag ignore_repeated_errors off
# php_flag ignore_repeated_source off
# php_flag report_memleaks on
# php_flag track_errors on
# php_value docref_root 0
# php_value docref_ext 0
# php_value error_log /pfad/zu/wordpress/temp/php-error.log
# php_value error_reporting -1
# php_value log_errors_max_len 0

# <Files php_errors.log>
#      Order allow,deny
#      Deny from all
#      Satisfy All
# </Files>

Wichtig: Nicht unbeaufsichtigt debuggen!

Das Debug-Log kann sensible Informationen beinhalten und außerdem die Leistung des Servers beeinträchtigen sowie unnötig Speicherplatz verbrauchen. Du solltest das Debugging also nur bei Bedarf aktivieren.