Frage Wie kann ich PHP-Fehler auf IIS7 anzeigen und protokollieren?


Wir betreiben PHP 5.2.5 auf einem IIS 7 Server und wir haben Probleme, PHP Fehler sichtbar zu machen ... Momentan sendet der Server einen 500 Fehler mit der Meldung "Die Seite kann nicht sein angezeigt, weil ein interner Serverfehler aufgetreten ist. "

Dies könnte eine gute Einstellung für Produktions-Websites sein, aber es ist eher nervig auf einem Entwicklungsserver ... ;-)

Ich habe versucht zu konfigurieren php.ini um Fehler auf dem Bildschirm anzuzeigen und sie in einem bestimmten Ordner zu protokollieren, aber es scheint, dass der Server alle Fehler vor und verhindert und behandelt von PHP ...

Weiß jemand, was wir tun müssen, damit IIS PHP-Fehler auf dem Bildschirm anzeigt? Alle Links, Tipps oder Tutorials zum Thema würden uns freuen!


28
2018-06-04 10:05


Ursprung


Stellen Sie zuerst sicher, dass Sie Folgendes haben: log_errors=1, error_reporting=-1, log_errors_max_len=0. - Pacerier
ini_set("display_errors", "on"); füge diese Zeilen in die PHP-Datei ein. - ELITE


Antworten:


Um das zu überprüfen, haben Sie die Protokollierung auf error_reporting = E_ALL, und display_errors = On in deiner php.ini? In der Regel reicht dies aus, um diese Fehler in IIS 7 anzuzeigen.

Sehen Sie sich als Nächstes die IIS-Einstellungen an, da möglicherweise nur lokale Fehlermeldungen angezeigt werden. Im IIS 7-Konfigurationseditor befindet sich dies unter system.webServer-> httpErrors. Sie müssen errorMode von "DetaillierteLokaleNur" in "Detailliert" ändern. Offensichtlich bedeutet dies jetzt, dass jeder, der auf Ihrer Website surft, den Fehler sehen kann.

enter image description here

enter image description here

Alternativ können Sie Remote Desktop verwenden, um sich am Server anzumelden und die App von dort aus auszuführen, wenn Sie dies können.


34
2018-06-04 10:16



Ja, ich habe überprüft und das ist alles richtig konfiguriert. - Ben
Es wurden weitere Informationen zur Fehlerbehebung hinzugefügt - Sam Cogan
Das Ändern des ErrorMode auf "Detailed" von "DetailedLocalOnly" hat es geschafft. Vielen Dank! - Ben
Ich musste die Sammlung von HTTP-Fehlern auch unter system.webServer entfernen. Ich habe erst mit PHP gearbeitet.
Bitte markieren Sie das system.webServer mit meinem Blut und füge hinzu: "Ja, da ist Combo". - DiGi


Ich wollte nur hinzufügen, dass "existingResponse" auf "PassThrough" gesetzt werden sollte. Ich habe keine richtigen Fehlermeldungen ohne diese zusätzliche Einstellung erhalten.


2
2018-06-06 13:48



Wo befindet sich diese Einstellung? - Eugene Mala


Sie können dies einfach mit der IIS-Manager-GUI durchführen. Wählen Sie Ihre Site aus und doppelklicken Sie auf Fehlerseiten. Klicken Sie dann auf "Feature-Einstellungen bearbeiten" und wählen Sie die Option "Detaillierte Fehler" anstelle der Standard-Detailfehler für lokale Anfragen und benutzerdefinierte Fehlerseiten für Remote-Anfragen. Voilà, einfach so!


0
2018-06-29 19:30



Wo können dann die Logs und Fehler angezeigt werden? - JukEboX


Ich musste in die Einstellungen auf dem Webserver in die PHP-Konfiguration gehen und es gibt dort eine Einstellung für die Fehlerberichterstattung und ist standardmäßig auf Produktion eingestellt. Musste es in Entwicklung ändern, auch nachdem ich die php.ini und den Vorschlag hier geändert habe. Ich verwende IIS 7.5 auf 2008 R2.


0
2018-02-24 03:07