Wie behebe ich einen unbekannten internen Serverfehler? (500) Nginx gibt mir?

Nginx gibt mir einen 500-Fehler, der mich verrückt macht. Zunächst habe ich eine personalsite.conf Archiv in /etc/nginx/conf.d/, wo ich meinen Serverblock habe.

Dies ist meine Serverblockkonfiguration:

server { listen 80; server_name personalsite.me; charset UTF-8; access_log /var/log/nginx/personalsite.access.log main; error_log /var/log/nginx/personalsite.error.log; root /usr/share/nginx/html/personalsite; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 

Plus nginx-Benutzer haben die richtigen Berechtigungen für /usr/share/nginx/html/personalsite/.

Nginx gibt mir einen 500-Fehler, wenn ich versuche, personalsite.me, und das Lustige ist, dass ich das weiß, weil ich die personalsite.access.log überprüft und gesehen habe, weil der Browser einfach leer ist. Aus unbekannten Gründen Nginx kann mir seine 500-Fehler-Seite nicht anzeigen, die ordnungsgemäß im Serverblock deklariert ist, wie Sie sehen können.

Eine weitere seltsame Sache ist, dass personalsite.error.log leer ist. es zeichnet nichts auf.

Außerdem habe ich diese Domain mit ihrer IP in meinem /etc/hosts Archiv deklariert. Ich habe also wirklich keine Ahnung, was hier passiert.

Alles ist r Entfernen von CentOS 7 über ein Digital Ocean VPS.

Antwort

Die meisten Fehler treten aufgrund einer Fehlkonfiguration beim Nigix-Setup auf. Ich werde vorschlagen, die Datei zu überprüfen (/etc/php-fpm.d/www.conf).

vi /etc/php-fpm.d/www.conf 

Suchen Sie die Zeile, die den Listen-Parameter angibt, und Ändern Sie es so, dass es wie folgt aussieht:

listen = /var/run/php-fpm/php-fpm.sock 

Suchen Sie als Nächstes die Zeilen, in denen listen.owner und listen.group und kommentieren Sie sie aus. Sie sollten folgendermaßen aussehen:

listen.owner = nobody listen.group = nobody 

Suchen Sie zuletzt die Zeilen, in denen Benutzer und Gruppe festgelegt sind, und ändern Sie ihre Werte von „apache“ in „nginx“:

user = nginx group = nginx 

Speichern und beenden Sie dann

/etc/init.d php-fpm restart 

Antwort

Nicht die beste Antwort der Welt, aber ein Fehler von 500 ist zu vieldeutig. Dies kann Ihre Nginx-Konfiguration sein oder mit dem Inhalt Ihrer Website zusammenhängen. Minimieren Sie Ihre Konfiguration und erstellen Sie sie neu, bis Sie das Problem reproduzieren können.

Ersetzen Sie den Inhalt der Website durch eine einfache index.html mit nur einfachem Text. Lassen Sie alle zusätzlichen Fehleranweisungen und den Standortblock weg. Sobald Sie die Grundfunktionalität eingerichtet haben, können Sie sich weniger verrückt fühlen und Ihre anderen Anweisungen hinzufügen, während Sie testen, bis Sie alle Anweisungen, die Probleme verursachen, isolieren und von dort aus die Hauptursache finden.

Kommentare

  • Eigentlich hat mir das geholfen zu verstehen, dass mein Nginx in Ordnung ist. Das Problem ist, dass ich ' versuche, die Website auszuführen. Ich habe den gesamten Inhalt durch eine phpinfo.php -Datei ersetzt und sie läuft perfekt. Die Website, die ich ' ausführen möchte, verwendet Yii Framework. Ich habe das offizielle Wiki überprüft und es heißt: " Software ist nginx, php-fpm (php5-fpm). Aus Gründen der Leistung wird empfohlen, ' php-fpm im SOCKET-Modus auszuführen, anstatt über IP: PORT zuzugreifen. Dies ist die unten gezeigte Methode " Ich ' verwende Nginx genau so. Ich habe also keine Ahnung, warum es mir einen Fehler von 500 gibt und schreibe nicht in das error.log.

Antwort

Wenn PHP display_errors deaktiviert ist, können PHP-Fehler einen Nginx 500-Fehler zurückgeben.

Sie sollten sich Ihre php-fpm-Protokolle ansehen. Ich bin sicher, dass Sie den Fehler dort finden werden. Mit CentOS 7:

tail -f /var/log/php-fpm/www-error.log 

Sie können auch PHP-Fehler anzeigen. Ändern Sie in /etc/php.ini Folgendes:

display_errors = Off 

in:

display_errors = On 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.