wake-up-neo.net

Wie kann ich machen PHP Anzeige des Fehlers statt 500 Interner Serverfehler

Das ist noch nie passiert. Normalerweise zeigt es den Fehler an, aber jetzt gibt es nur einen internen Serverfehler von 500. Bei der Anzeige des Fehlers waren es natürlich andere Server. Jetzt bin ich auf einem neuen Server (ich habe volle Root, also wenn ich es irgendwo in der php.ini konfigurieren muss, kann ich das.) Oder vielleicht etwas mit Apache?

Ich habe mich damit abgefunden, indem ich die Datei einfach auf meinen anderen Server übertragen und dort ausgeführt habe, um den Fehler zu finden, aber das ist zu langweilig geworden. Gibt es eine Möglichkeit, dies zu beheben?

124
Rob

Überprüfen Sie die Einstellungen für error_reporting, display_errors und display_startup_errors in Ihrer php.ini-Datei. Sie sollten jeweils auf E_ALL und "On" gesetzt sein (Sie sollten display_errors jedoch nicht auf einem Produktionsserver verwenden. Deaktivieren Sie dies und verwenden Sie stattdessen log_errors, wenn Sie es bereitstellen). Sie können diese Einstellungen (außer display_startup_errors) auch ganz am Anfang Ihres Skripts ändern, um sie zur Laufzeit festzulegen (obwohl Sie möglicherweise nicht alle Fehler auf diese Weise abfangen):

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

Starten Sie danach den Server neu.

185
awgy

Wenn Ihr Fehler auf .htaccess zurückzuführen ist, beispielsweise ein fehlendes rewrite_module, wird der 500-Server-Serverfehler weiterhin angezeigt.

16
dtbarne

Verwenden Sie "php -l <Dateiname>" (das ist ein "L") in der Befehlszeile, um den Syntaxfehler auszugeben, durch den PHP den Status 500-Fehler auslösen könnte. Es wird etwas ausgegeben wie:

PHP Parse-Fehler: Syntaxfehler, unerwartetes '}' in <Dateiname> in Zeile 18

10
Aaron

Versuche nicht zu gehen 

MAMP > conf > [your PHP version] > php.ini

aber 

MAMP > bin > php > [your PHP version] > conf > php.ini

und ändern Sie es dort, es hat für mich funktioniert ...

3
von verletzt

Das Aktivieren der Fehleranzeige aus PHP -Code funktioniert für mich nicht. In meinem Fall verfolge ich mit NGINX und PHP-FMP die Protokolldatei mit grep . Zum Beispiel kenne ich den Dateinamen mycode.php , der den Fehler 500 verursacht, weiß aber nicht, in welcher Zeile. Von der Konsole aus verwende ich Folgendes:

/var/log/php-fpm# cat www-error.log | grep mycode.php

Und ich habe die Ausgabe:

[04-Apr-2016 06:58:27] PHP Parse error:  syntax error, unexpected ';' in /var/www/html/system/mycode.php on line 1458

Dies hilft mir, die Zeile zu finden, in der ich den Tippfehler habe.

3
Hao Nguyen

Achten Sie darauf, ob 

display_errors

oder

error_reporting

ist irgendwo anders in der Ini-Datei aktiv (kein Kommentar).

Mein Entwicklungsserver weigerte sich, Fehler nach dem Upgrade auf .__ anzuzeigen. Kubuntu 16.04 - Ich hatte php.ini mehrmals überprüft ... stellte sich heraus, dass es einen diplay_errors = off gab; etwa 100 Zeilen unter meinem 

display_errors = on;

Denken Sie also daran, dass das letzte zählt!

2
Max

Wenn alles andere fehlschlägt, verschieben Sie alle Dateien und Verzeichnisse (d. H. In der Bash) "weg" und fügen Sie sie nacheinander hinzu.

Ich habe gerade so herausgefunden, dass meine .htaccess-Datei auf eine nicht vorhandene .htpasswd-Datei verweist. (#dumm)

0
WoodrowShigeru