Zum Inhalt springen

Nginx/Problembehebung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
== Installation ==
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
< /syntaxhighlight>
</syntaxhighlight>


== Aufruf ==
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
< /syntaxhighlight>
</syntaxhighlight>


=== Optionen ===
=== Optionen ===
Zeile 34: Zeile 34:
== Anwendung ==
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
< /syntaxhighlight>
</syntaxhighlight>


=== Problembehebung ===
=== Problembehebung ===
Zeile 157: Zeile 157:
Eventuell sollen beide Schnittstellen den selben Port verwenden
Eventuell sollen beide Schnittstellen den selben Port verwenden
* Allerdings kann sich jeweils nur eine Schnittstelle an einen Port binden
* Allerdings kann sich jeweils nur eine Schnittstelle an einen Port binden
[[Kategorie:Nginx]]

Aktuelle Version vom 11. Oktober 2025, 10:52 Uhr

Nginx/Problembehebung - Beschreibung

Beschreibung

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Man-Page
  1. prep(1)


Links

Projekt

Weblinks


TMP

Problembehebung

Bild(Wiki/Icons/hint.png, 64, align=right) Siehe auch Nginx Pitfalls {en} (sinngemäß: typische Fehler)

Bei allen PHP-Dateien wird nur "No input file specified" angezeigt

Dies ist ein üblicher Fehler, der aber schnell behoben werden kann

  • Es gibt zwei hauptsächliche Ursachen:

Ursache 1

Folgende Konfiguration wird für PHP-Dateien benutzt: {{{ location ~ \.php$ {

       fastcgi_pass   localhost:9000;
       include           fastcgi_params; # Statt fastcgi.conf

} }}} Da nur in der Datei fastcgi.conf spezifiziert ist, dass PHP-Dateien auch unabhängig von dem `document root`-Verzeichnis verarbeitet werden sollen, sollte man diese statt `fastcgi_params` verwenden

  • Wer `fastcgi_params` trotzdem nutzen möchte, kann statt des Ersetzen folgende Zeile hinzufügen:

{{{

       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}}}

Ursache 2

Folgende (vereinfachte) Konfiguration wird benutzt: {{{ location / {

       root               /var/www/html;

}

location ~ \.php$ {

       fastcgi_pass   localhost:9000;
       include          fastcgi.conf;

} }}} Da die location `~ \.php$` eine andere als `/` ist, ist für die FastCGI-Schnittstelle unbekannt, wo das Wurzelverzeichnis für diesen `server { [...] }`-Block ist, weil dieses nur in `location /` festgelegt ist

  • Folgende Konfiguration löst dieses Problem:

{{{ root /var/www/html; # 'root' wird nun global für den server { [...] }-Block festgelegt

location ~ \.php$ {

                    fastcgi_pass   localhost:9000;
                    include          fastcgi.conf;

} }}}

nginx zeigt bei existierenden Dateien im Browser "403" an

Benutzerberechtigungen überprüfen! Diese Meldung kommt meistens, wenn nginx bzw

  • der Benutzer, mit dem nginx läuft, keinen Zugriff auf die Dateien hat

Es erscheint auf allen Websites nur noch die Meldung "502 Bad Gateway"

Dies passiert, wenn die FastCGI-Schnittstelle oder die Adresse von `proxy_pass` nicht für nginx erreichbar ist (auf Servern kann dies mit [:Lynx:] überprüft werden)

  • Gründe können z. B. ein Absturz der Schnittstelle sein

nginx verarbeitet keine .htaccess-Dateien

Das ist korrekt, da alle Änderungen bzw. Einstellungen in der Konfigurationsdatei nginx.conf vorgenommen werden

  • Und Absicht - diverse Gründe, wieso es unter nginx keine htaccess-Dateien gibt, finden sich im FAQ von nginx {en} - kurz gesagt ist .htaccess ist ein Performancekiller und potentielle Sicherheitslücke
  • Allerdings gibt es diverse Konverter {en} von htaccess zu nginx, um den Umstieg leicht zu machen

nginx startet nicht, da die Konfigurationsdatei angeblich falsch ist

Die Konfigurationsdatei überprüfen, ob überall am Ende jedes Befehls/jeder Zeile ein Semikolon steht, und, ob alle `server { [...] }`-Blöcke auch mit dem Zeichen "}" geschlossen sind!

Obwohl nginx richtig konfiguriert ist, passiert beim Aufrufen von Subdomains nichts

Bei diesem Problem wird vermutlich eine Fehlkonfiguration der DNS-Zonen vorliegen

Wieso bleibt nginx an der Meldung "[...]:80 failed (98: Address already in use)" hängen?

nginx oder ein anderer Webserver benutzt bereits den Port 80

  • Es kann immer nur ein Programm an dem Port lauschen

Wieso kann Plesk nginx nicht konfigurieren?

Das liegt daran, dass [wikipedia:Plesk:] [:Apache:] nutzt und nicht auf nginx zugeschnitten ist

Die Log-Datei bleibt leer, warum?

Falls der Nutzer geändert wurde, mit dem nginx läuft, muss dieser über Schreibzugriff auf diese Datei verfügen

Weshalb läuft eine FastCGI-Schnittstelle, die andere aber nicht?

Eventuell sollen beide Schnittstellen den selben Port verwenden

  • Allerdings kann sich jeweils nur eine Schnittstelle an einen Port binden