Wie Debuggen ich ein PHP WSOD?
Frage
Sehr selten bekomme ich einen mystifizierend weiß-Screen-of-Death PHP-Fehler - nichts angezeigt wird oder protokolliert, auch mit den folgenden Einstellungen:
ini_set("error_reporting",E_ALL); ini_set("display_errors",true); ini_set("log_errors",true); ini_set("display_startup_errors",true); ini_set("html_errors",false); ini_set("error_log","/var/log/php_error_log");
Ich habe irgendwo gelesen, dass die Ausgabe-Pufferung oder Speicherlimit Fehler in keinem Fehlerausgang führen können, aber vorher (zum Beispiel) ich eine WSOD einfach durch __autoload verursacht gefunden habe () auf der Suche nach einer fehlenden Klassendatei.
Hat jemand eine Möglichkeit, diese Fehler sichtbar zu bekommen gefunden? Ich hasse es zu kommentieren aus Code-Blöcken.
Danke
Lösung
Ich hatte ein ähnliches Problem vor kurzem und es stellte sich heraus, dass das Softwarepaket I wurde mit deshalb überwiegend sei die Protokolleinstellungen so, dass ich nie die Protokolle in bestimmten Situationen zu sehen war. Weil Ihr die Einstellungen in der INI-Datei setzen, ich bin zu raten, Ihre Verwendung php.ini, gibt es eine Menge Möglichkeiten, dass etwas näher an, wo der Code laufen die Einstellungen ändert.
Mein Rat wäre, error_reporting(E_ALL | E_STRICT);
in der Datei zu setzen, die das Problem verursacht, und sehen, ob die Dinge verbessert.