7 Stimmen

Wie kann ich die Details eines internen PHP-Serverfehlers anzeigen?

Ich habe eine PHP-Anwendung auf einem gemeinsam genutzten Webserver installiert. Ich erhalte eine 500 Internal Server Error . Ich scheine keinen Zugang zu Protokolldateien zu haben, daher möchte ich, dass die Fehlerseite vorübergehend Einzelheiten über den Fehler enthält.

25voto

Jeremy Morgan Punkte 3191

Versuchen:

error_reporting(E_ALL);
ini_set('display_errors', '1');

am Anfang der Datei.

4voto

Dereleased Punkte 9671

Wenn Jeremy Morgans Lösung nicht funktioniert, versuchen Sie, Ihre eigene Protokolldatei zu erstellen, indem Sie set_error_handler() . Normalerweise reichen einige Informationen über den Zustand der Anwendung ($GLOBALS usw.) aus, aber PHP wird (zumindest versuchen), Ihnen alle möglichen Informationen darüber zu geben, wo der Fehler aufgetreten ist und um welche Art von Fehler es sich handelt.

Versuchen Sie auch, die "Divide and Conquer"-Methode der Fehlersuche anzuwenden. Beginnen Sie mit etwa der Hälfte Ihrer Datei und erweitern Sie sie dann nach oben, wenn sie immer noch abstürzt, oder nach unten, wenn sie bis zu diesem Punkt läuft. Wenn Sie Ihren Code nicht entfernen wollen, können Sie entweder /* comment out */ den auszuschneidenden Code, oder verwenden Sie die __halt_compiler() um PHP zu veranlassen, alle restlichen Daten in der Datei zu ignorieren.

Eine Sache, die mich wahnsinnig gemacht hat, ist ein sogenanntes Byte Order Mark . PHP wertete diese Stückliste am Anfang der Datei aus, was dazu führte, dass es Ausgaben sendete und Probleme beim Senden von Kopfzeilen und dergleichen verursachte. Wahrscheinlich ist das nicht das Problem, das Sie haben, aber es lohnt sich, das zu wissen.

2voto

Tim Lytle Punkte 17229

Ich bezweifle, dass Sie diese Fehlermeldung von PHP erhalten. Bei Shared Hosting ist es wahrscheinlicher, dass die Standard-.htaccess-Konfiguration der Anwendung den Fehler verursacht.

Meine Vermutung wäre, dass ein mod_rewrite ohne RewriteBase gesetzt.

1voto

CheeseConQueso Punkte 5613

Sehen Sie sich die Werte in phpinfo(); um zu sehen, ob etwas auffällt... fügen Sie es irgendwo in den Code ein und es sollte eine Reihe von php-Versionsinformationen anzeigen

-1voto

Franz Punkte 11123

Ein "Internal Server Error" ist kein PHP-Fehler (wie der Name schon sagt). Daher müssen Sie sich entweder Ihre Serverprotokolle ansehen (auf die Sie, wie es scheint, keinen Zugriff haben) oder Sie können von PHP aus nichts dagegen tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X