Nginx / FPM / PHP todos os arquivos php dizem 'Arquivo não encontrado'.

7

Acabei de instalar o nginx 1.1.13 e o php 5.4.0 em uma máquina centosa 5.8 final de 64 bits. Nginx e PHP / Fpm estão rodando, e eu posso rodar scripts php via linha de comando ssh, mas no navegador eu continuo recebendo 'Arquivo não encontrado'. erros em todos os meus arquivos PHP.

É assim que eu tenho meu nginx.conf manipulando scripts PHP:

      location ~ \.php$
      {
              root                    /opt/nginx/html;
              fastcgi_pass            unix:/tmp/fpm.sock;
              fastcgi_index           index.php;
              fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
              include                 fastcgi_params;
      }

Esta é uma cópia / colagem direta dos meus outros servidores, onde funciona bem com esta configuração (mas eles executam versões mais antigas do php / fpm).

Por que estou recebendo esses erros?

    
por Mr.Boon 11.03.2012 / 11:53

5 respostas

15

Coloque "include fastcgi_params"; antes de todas as linhas "fastcgi_param *", "include fastcgi_params;" substitui todas as linhas "fastcgi_param *" (consulte o log de depuração nginx):

location ~ \.php$ {
    root                    /opt/nginx/html;
    fastcgi_pass            unix:/tmp/fpm.sock;
    fastcgi_index           index.php;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
}
    
por 25.04.2012 / 11:12
2

Eu tive o mesmo problema.

O que eu fiz para resolver isso foi verificar o usuário rodando nginx, php-fpm e checar suas permissões para acessar a pasta onde está a raiz. É o padrão 'www-data'.

mas você pode descobrir usando os comandos ps aux | grep php-fpm e ps aux | grep nginx .

Você precisa garantir que a pasta esteja acessível ao usuário que está executando esses processos.

    
por 21.10.2014 / 04:49
1

Eu tive o mesmo problema e, para mim, era uma diretiva "raiz" de configuração incorreta / inexistente na configuração do servidor nginx

    
por 23.03.2012 / 10:54
1

Eu uso essa configuração, desejo que possa ajudá-lo. Funciona no OS X. Quanto a mim, a resposta do @Xosofox funcionou. Eu digitei erroneamente a versão do nginx 1.6.2 como 1.2.6, para que a raiz se torne um diretório não existente.

location ~ \.php$ {
    fastcgi_intercept_errors on;
    root           /usr/local/Cellar/nginx/1.6.2/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /usr/local/Cellar/nginx/1.6.2/html$fastcgi_script_name;
}
    
por 15.03.2015 / 08:05
0

Eu resolvo esse problema trocando usuário e grupo do usuário atual: group em php-fpm.d / www.conf

Por padrão, o usuário e o grupo são 'nginx', mude isso ....

Espero que isso ajude

    
por 15.07.2016 / 15:35