O Nginx não encontra subdiretórios e também não executa o index.php no diretório padrão

3

Eu mudei do Apache para o Nginx e agora estou tendo alguns problemas.

  1. Quando tento acessar qualquer pasta, como por exemplo http://devserver/monitor/web , onde tenho um projeto do Symfony, recebo um erro 404
  2. Quando tento acessar a http://devserver , recebo esta mensagem o tempo todo File not found.

É assim que meu arquivo /etc/nginx/conf.d/default.conf se parece:

server {
    listen       80;
    server_name  devserver;

    location / {
        root   /var/www/html;
        index  index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
}

O que está errado aí?

    
por Reynier 08.02.2014 / 15:25

1 resposta

4

Você colocou suas diretivas root nos lugares errados.

root deve ser definido no bloco server , não em cada bloco location . Este é um dos misconfigurations mais comuns do nginx .

Para resolver o problema, remova todas as diretivas root de cada bloco location e coloque a diretiva root correta no bloco server , não em qualquer location .

O único motivo para ter root em um bloco location é quando você realmente deseja uma raiz de documento diferente para esse location , como para veicular as mensagens de erro padrão nginx (como você está fazendo aqui). / p>     

por 08.02.2014 / 19:28