Mit einigen (oder sehr viel) Versuch und Irrtum konnte ich meine Kopie ändern und eingefügt nginx fastcgi php-Konfiguration von vor Jahren, um meine php-Anwendung in einem Unterordner ausführen zu können.nginx übergibt fastcgi query string
Aber der letzte letzte Schritt, den ich nicht lösen kann, ist, wie nginx die Abfragezeichenfolge an php übergeben kann, um auf die GET-Parameter zugreifen zu können. Dies ist meine Konfiguration meist perfekt mit nur die Konfigurationsparameter fehlt:
server {
listen 80;
server_name project.dev;
location /app/ {
alias /path/to/my/application/;
index index.php;
try_files $uri $uri/ /app/index.php;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
}
location/{
# configuration for static website
}
}
ich gelesen, dass es verschiedene Optionen, die Sie try_files
passieren müssen Anforderungsparameter zu erhalten:
try_files $uri $uri/ /app/index.php$is_args$query_string;
try_files $uri $uri/ /app/index.php$is_args$args;
try_files $uri $uri/ /app/index.php?$query_string;
Leider ist es zu einem dieser Ergebnisse in meinem PHP-Skript zu ändern nicht mehr gefunden, weil nginx die Anforderung an das Dokumentenstamm setzt:
2016/11/25 11:54:48 [error] 45809#0: *1169 open() "/usr/local/Cellar/nginx-full/1.10.2/htmlindex.php" failed (2: No such file or directory), client: 127.0.0.1, server: project.dev, request: "GET /app/myurl?test=works HTTP/2.0", host: "project.dev", referrer: "http://project.dev/app/myurl?test=works"
einen absoluten Pfad für fastcgi_param SCRIPT_FILENAME
Bereitstellung nicht funktioniert die gleichen Fehler Producting. Selbst das Setzen einer root
Konfiguration auf der Ebene server
funktioniert nicht korrekt, da der Trennstrich für den Pfad und die index.php
immer weggelassen wird. Aber (wenn möglich) würde ich bevorzugen, ohne ein Root-Verzeichnis auf der Server-Ebene zu setzen, weil dieses Projekt aus vielen verschiedenen Ordnern und Anwendungen auf dem Dateisystem besteht, die kein gemeinsames Verzeichnis teilen.
Was versuchen Sie zu erreichen? Welche Dateien haben Sie unter '/ path/to/my/application /'? –
Meine vollständige Bewerbung ist unter '/ Pfad/zu/meinem/Anwendung /' mit all ihren Assets gespeichert und es ist php. Das Laden der Assets und das Ausführen des PHP funktioniert genau wie erwartet, aber aus irgendeinem Grund kann ich die Parameter $ _GET nicht an das Fastcgi übergeben –
Das Problem ist 'Alias' und' try_files'.Sie möchten Ihre Anwendung unter dem URI '/ app' ausführen, die Dinge wären ** sehr ** einfach, wenn'/pfad/zu/meine/application/'mit'/app' endet (der gleiche Unterverzeichnisname wie der URI) . –