In WordPress-Umgebungen gibt es normalerweise keinen Grund zur Verwendung ini_set
da die von WordPress Core bereitgestellten definierten Konstanten dies bereits erreichen. PHP funktioniert so, dass bestimmte Einstellungen in Ihrem CMS (WordPress), in einzelnen Skripten und sogar pro Benutzer oder pro Verzeichnis außer Kraft gesetzt werden können (sehr zur Frustration von Webhosts und Agenturen).
Die einzige Einstellung, die Sie wirklich benötigen, um zu verhindern, dass Fehler auf einer Seite in WordPress angezeigt werden, ist:
define('WP_DEBUG', false);
...weil wenn WP_DEBUG
deaktiviert, sind die Unteroptionen dann inaktiv:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Beachten Sie, dass sich die verwirrende WP_DEBUG_LOG
Option nur auf die Erstellung von beziehtdebug.log
innerhalb des Verzeichnisses wp-content
bezieht und sich nicht auf andere Protokolleinstellungen usw. auswirkt.
Auch hier können die Einstellungen in WordPress die Standard-PHP-Einstellungen überschreiben, sodass Ihre PHP-Einstellungen weniger wichtig sind als die korrekten Einstellungen in Ihrem wp-config.php
Datei, die vor anderen WP-Komponenten geladen wird.
Trotzdem ist es eine gute Idee, die folgenden Standardeinstellungen in der Produktion zu implementieren:
error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off
Ein vollständiges Beispiel finden Sie in unserer für Nginx und PHP-FPM optimierten SlickStack-Datei php.ini .
In einem Fall stellten wir nach stundenlanger Recherche fest, dass ein Plugin (oder Thema) die verschiedenen Einstellungen für die Fehlerbehandlung überschrieb, die zuvor festgelegt wurden php.ini
undwp-config.php
. Die einzige Möglichkeit, dies zu verhindern, besteht darin, das WordPress-Plugin oder -Thema zu entfernen, das versucht, Ihre PHP-Einstellungen zu "hacken", oder sie anzuweisen, es zu entfernen, da dies eine sehr schlechte Praxis ist, wenn Erweiterungen die Debug-Optionen Ihres CMS überschreiben.
In SlickStack haben wir ein Bash - Skript , dass „Flags“ jede ini_set
und error_reporting
Linien von PHP - Dateien in die /themes/
und /plugins/
Verzeichnisse , die von solchen Fällen Hervorhebung eines MU - Plugin (PHP - Skript) , dass zeigt eine Liste solcher „Hacks“ in der WP Admin Dashboard.