Primäres Skript unbekannt nginx

Primäres Skript unbekannt nginx

Ich bin neu bei Nginx. Ich versuche, es auf Kubernetes bereitzustellen. Aber ich bekomme:

FastCGI hat in stderr gesendet: „Primäres Skript unbekannt“ beim Lesen des Antwortheaders vom Upstream, Client: 10.0.1.1, Server: , Anfrage: „GET /app.php/ HTTP/1.1“, Upstream: „fastcgi://[::1]:9000“, Host:

Ich habe keine Ahnung, wie ich das lösen kann. Und wenn ich die URL bekomme:

Datei nicht gefunden.

Hier meine Konfigurationsdatei:

server {
    listen  80;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    root /srv/webroot/web;
    index app.php;

    client_max_body_size 30M;

    location / {
        try_files $uri @pass_to_symfony;
    }

    location ~ /app_dev.php/ {
        try_files $uri @pass_to_symfony_dev;
    }

    location @pass_to_symfony{
        rewrite ^ /app.php?$request_uri last;
    }

    location @pass_to_symfony_dev{
        rewrite ^ /app_dev.php?$request_uri last;
    }

    location ~ ^/app(_dev)?\.php($|/) {
        fastcgi_pass localhost:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Mein Projekt ist auf Symfony

Antwort1

Wenn eine PHP-URI Pfadinformationen enthält, müssen Sie eine fastcgi_split_path_infoDirektive (oder etwas Ähnliches) verwenden, um den tatsächlichen Skriptnamen (z. B. /app.php) von den daran angehängten Pfadinformationen (z. B. /) zu trennen.

location ~ ^/app(_dev)?\.php($|/) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    fastcgi_pass localhost:9000;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Sehendieses Beispielfür Details.

verwandte Informationen