
Soy nuevo en nginx. Intento implementarlo en Kubernetes. Pero me sale:
FastCGI envió en stderr: "Script principal desconocido" mientras leía el encabezado de respuesta desde el nivel ascendente, cliente: 10.0.1.1, servidor:, solicitud: "GET /app.php/ HTTP/1.1", ascendente: "fastcgi://[:: 1]:9000", anfitrión:
No tengo idea de cómo resolver esto y cuando obtengo la URL:
Archivo no encontrado.
Aquí mi archivo de configuración:
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;
}
}
Mi proyecto está en Symfony.
Respuesta1
Cuando un URI de PHP incluye información de ruta, necesitará usar una fastcgi_split_path_info
directiva (o algo similar) para separar el nombre real del script (p. ej. /app.php
) de la información de ruta adjunta (p. ej /
.).
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 ejemplopara detalles.