Seu bloco location ~ \.php$
aninhado não encontrará seus scripts PHP. O $document_root
está definido como /path/to/php-app
. E $fastcgi_script_name
é o mesmo que $uri
, que ainda inclui o prefixo /app
.
A abordagem correta é usar $request_filename
e remover sua falsa declaração root
:
location ^~ /app {
alias /path/to/php-app;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Sempre inclua fastcgi_params
antes de qualquer instrução fastcgi_param
para evitar que sejam sobrescritos silenciosamente pelo conteúdo do arquivo de inclusão. Consulte este documento para obter detalhes.