Fehler in nginx-Konfigurationsdateien einfach finden
Wenn du eine nginx-Konfigurationsdatei bearbeitet hast und nginx nicht neu laden oder starten möchte, z.B. mit einer Fehlermeldung wie dieser:
# service nginx reload
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.hast du wahrscheinlich einen Fehler in einer deiner Konfigurationsdateien.
Es gibt einen einfachen Befehl zum Prüfen auf Fehler (du musst ihn als root ausführen): nginx -t
Beispielausgabe:
nginx: [emerg] unknown directive "autoindex$" in /etc/nginx/sites-enabled/mysite:31
nginx: configuration file /etc/nginx/nginx.conf test failedDie letzte Zeile sagt dir zuerst, dass tatsächlich ein Fehler in den Konfigurationsdateien vorliegt.
Die erste Zeile sagt dir genau, wo er sich befindet: /etc/nginx/sites-enabled/mysite:31 bedeutet: Schau in der Datei /etc/nginx/sites-enabled/mysite, Zeile 31.
In diesem speziellen Fall lautet die tatsächliche Fehlermeldung unknown directive "autoindex$". Durch das Prüfen der vorgenannten Datei konnte ich feststellen, dass ich versehentlich autoindex $; statt autoindex on; eingegeben hatte.
Nach der Behebung dieses Problems zeigt nginx -t, dass die Konfigurationsdatei nun korrekt zu sein scheint:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulBeachte, dass zwar die meisten Fälle, in denen nginx nicht (neu) startet, durch Probleme in den Konfigurationsdateien verursacht werden, es aber einige Fälle gibt, in denen die Konfigurationsdatei korrekt erscheint und nginx dennoch nicht startet. In diesem Fall schau dir das Logfile an, das sich üblicherweise unter /var/log/nginx/error.log befindet. Du musst root sein, um es anzuzeigen. Ich empfehle diesen Befehl:
sudo tail -n 1000 /var/log/nginx/error.log