Eu sou novo no nginx. Tento implantá-lo no Kubernetes. Mas eu entendo:
FastCGI enviado em stderr: "Script primário desconhecido" ao ler o cabeçalho de resposta do upstream, cliente: 10.0.1.1, servidor:, solicitação: "GET /app.php/ HTTP/1.1", upstream: "fastcgi://[:: 1]:9000", hospedeiro:
Não tenho ideia de como resolver isso. E quando recebo o URL:
Arquivo não encontrado.
Aqui meu arquivo de configuração:
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;
}
}
Meu projeto está no symfony
Responder1
Onde um URI PHP inclui informações de caminho, você precisará usar uma fastcgi_split_path_info
diretiva (ou algo semelhante) para separar o nome real do script (por exemplo, /app.php
) das informações de caminho anexadas a ele (por exemplo, /
).
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;
}
Vereste exemplopara detalhes.