"Script primário desconhecido" quase sempre significa que o valor para SCRIPT_FILENAME
está errado.
O problema é provável estas três linhas:
root /Users/RobDee/workspace/beer/web;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
Você define o $document_root
, depois configura como /scripts
. Qual é?
Em um bloco de servidor nginx
normal, você definiria o root
uma vez próximo ao topo do bloco do servidor e permitiria que todos (ou a maioria) location
bloqueiassem o mesmo valor. Substitua apenas onde for necessário. Consulte este documento para obter detalhes.
O formato usual para SCRIPT_FILENAME
é um destes:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;
Que na sua configuração equivaleria ao mesmo valor. Observe que $document_root
é definido pelo valor da diretiva root
.
Por fim, incluir fastcgi_params
por último pode ou não estar ok. Em algumas versões de fastcgi_params
, pode haver definições conflitantes para as instruções fastcgi_param
que você definiu explicitamente. Você deve sempre incluir o arquivo antes das instruções fastcgi_param
explícitas.
Por exemplo:
server {
...
root /Users/RobDee/workspace/beer/web;
...
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_read_timeout 3000;
}
}
A diretiva fastcgi_index
não tem significado neste contexto.