Ich habe nginx unter Ubuntu Hardy installiert und sofort festgestellt, dass die PHP-Skripte leere Anforderungsarrays erhielten, dh ob GET oder POST nichts durchlief, sogar das Array $ _REQUEST war leer.
Als ich zurück zu Apache wechselte, war alles in Ordnung.
Die Installations-Nginx-Version ist 0.6.35-0ubuntu1.1 ~ hardy1 und PHP ist PHP-Version 5.2.4-2ubuntu5.10.
Was könnte falsch sein?
Antworten:
Überprüfen Sie, ob dies in Ihrem "Standort" -Abschnitt für Ihr FastCGI-Modul festgelegt ist
http://wiki.nginx.org/NginxHttpFcgiModule
quelle
Es ist eine Funktion von
try_files command
in nginx, dass diequery_string
nicht automatisch an die neu geschriebene Datei übergeben wird, sondern explizit übergeben werden muss. Aus diesem Grund_$SERVER['QUERY_STRING']
ist immer leer, und so sind die Variablen$_REQUEST
und$_GET
auch nicht gesetzt.Aus der Nginx-Dokumentation:
oder nur mit den Argumenten
Wenn Sie sicherstellen möchten , verwenden Sie die ursprünglichen Argumente dann zu erhalten ,
$query_string
welche die gleiche wie der$args
Ausnahme , dass$query_string
schreibgeschützt ist .quelle
Versuchen Sie, die variable_order in der von nginx verwendeten PHP-Konfigurationsdatei zu überprüfen .
quelle