No puedo notar ninguna diferencia si en mi archivo de configuración configuro
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
O:
fastcgi_param SCRIPT_FILENAME $request_filename;
¿Qué hacen respectivamente? ¿Es uno de los dos mejor que el otro?
Gracias por adelantado.
fuente

fastcgi_split_path_infonecesites un ajuste. La respuesta de Steely Wing parece estar muy basada en la experiencia, no en la documentación.fastcgi_split_path_infopara excluir mi prefijo de alias colocándolo fuera de las dos capturas, pero no pareció tener ningún efecto. Mientras que pasar$request_filenamecomoSCRIPT_FILENAMEfunciona como un encanto, independientemente de si se trata de un alias o no.SCRIPT_FILENAMEen primer lugar, cuando$request_filenamecontiene el nombre real del archivo resuelto, sin ningún agregado adicional. El ejemplo anterior es realmente incorrecto, ya que$request_filenamede hecho contiene un nombre de archivo en lugar de solo una ruta, incluso cuando ese archivo no se solicitó explícitamente. Al menos esa es mi conclusión de ayer.TLDR
Lo recomendé usar
$request_filenameparaSCRIPT_FILENAME.Si usa la
rootdirectiva$document_root$fastcgi_script_namees igual a$request_filename.Si usa la
aliasdirectiva$document_root$fastcgi_script_namedevolverá la ruta incorrecta, porque$fastcgi_script_namees la ruta de la URL, no la ruta relacionada$document_root.Ejemplo
Si tienes config
Solicitud
/api/testing.php:$document_root$fastcgi_script_name==/app/www//api/testing.php$request_filename==/app/www/testing.phpSolicitud
/api/:$document_root$fastcgi_script_name==/app/www//api/index.php$request_filename==/app/www/index.phpY si lo usa
$request_filename, debe establecer el índice usando laindexdirectiva,fastcgi_indexno funcionará.fuente
Supongo que esas líneas fueron tomadas del archivo 'fastcgi_params' ...
Básicamente, no recibe ningún error cuando se trata de
SCRIPT_FILENAMEporque ya está definido cuando definió su directiva raíz en su archivo vhost. Entonces, a menos que lo haya definido explícitamente en su archivo vhost,fastcgi_paramel valor deSCRIPT_FILENAMEse tomaría de la directiva raíz. Pero UN PUNTO IMPORTANTE AQUÍ. Hay otra variable que nginx necesita para enviar las solicitudes al servidor php que es$fastcgi_script_namey debe definirla bien para evitar URL repetitivas y errores con uri que terminan con una barra inclinada.conclusión :
Para que todo funcione súper bien, todos deben definir
SCRIPT_FILENAMEexplícitamente en el archivo 'fastcgi_params' ubicado en la carpeta / etc / nginx o fácilmente en el servidor virtual de su sitio ubicado en la carpeta de sitios disponibles al incluir la siguiente línea en el bloque de ubicación php:o incluido en el archivo 'fastcgi_params' como escribió anteriormente, de cualquier manera es lo mismo. Para obtener más información para conectar ngnix a PHP-FPM, vaya a:
https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
Espero que ayude a cualquiera en el futuro porque me llevó mucho tiempo resolverlo ...
fuente