기본 스크립트를 알 수 없음 nginx

기본 스크립트를 알 수 없음 nginx

저는 nginx를 처음 사용합니다. 쿠버네티스에 배포하려고 합니다. 하지만 나는 다음과 같은 결과를 얻습니다.

FastCGI가 stderr로 전송됨: 업스트림에서 응답 헤더를 읽는 동안 "기본 스크립트 알 수 없음", 클라이언트: 10.0.1.1, 서버: , 요청: "GET /app.php/ HTTP/1.1", 업스트림: "fastcgi://[:: 1]:9000", 호스트:

이 문제를 해결하는 방법을 모르겠습니다. URL을 받으면 다음과 같습니다.

파일을 찾을 수 없습니다.

여기 내 구성 파일이 있습니다.

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;
    }
}

내 프로젝트는 심포니에 있습니다

답변1

fastcgi_split_path_infoPHP URI에 경로 정보가 포함된 경우 지시문(또는 유사한 것)을 사용하여 실제 스크립트 이름(예: /app.php)과 추가된 경로 정보(예: )를 구분 해야 합니다 /.

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;
}

보다이 예자세한 내용은.

관련 정보