nginx + PHP-FPM = erro “permissão negada” 13 no log nginx; erro de configuração?

20

Eu tenho nginx 0.7x + PHP-FPM rodando sob PHP 5.2.10 em um servidor RHEL5, mas tentando duplicar essa configuração sob o PHP-FPM no PHP 5.3.3 em um segundo servidor, eu estou tendo algum problema com erros de permissão toda vez que houver um GET.

O FPM é iniciado e confirmou que fastcgi está escutando em 9000, mas cada vez que faço um GET, vejo esse erro no log do nginx:

2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com"

Barebones nginx.conf.default funciona, pelo menos. Aqui está o meu nginx.conf

server {
        listen       80;
        server_name  dev.noisepages.com;
        root   /home/noisepages/www;
        index  index.html index.htm index.php;

        access_log  logs/dev.access.log;
 error_log logs/dev.error.log;

        location / {

 if (-f $request_filename) {
  expires 30d;
  break;
  }

 # this sends all non-existing file or directory requests to index.php
 rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;
 if (!-e $request_filename) {
     rewrite ^.+?(/wp-.*) $1 last;
  rewrite ^.+?(/.*\.php)$ $1 last;
  rewrite ^ /index.php last;
  }
        }

        location ~ \.php$ {
            include        fastcgi_params;
            fastcgi_pass   unix:/dev/shm/php-fastcgi.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    /home/dev/www/$fastcgi_script_name;
        }
    }

(As diretivas extras de reescrita são para o uso do WordPress multisite, também conhecido como WordPress MU)

Também verifiquei que o usuário www-data é declarado não apenas no nginx.conf, mas também no php-fpm.conf para valores de usuários e grupos.

Talvez eu não esteja entendendo o que causa a mensagem de erro 13? Por incrível que pareça, eu tentei configurar dev.noisepages.com no primeiro servidor em paralelo a alguns outros hosts virtuais - cada um deles funcionando bem - e recebi o mesmo erro.

    
por Peter Kirn 13.08.2010 / 15:21

4 respostas

53

Você precisa garantir que tenha +x em todos dos diretórios no caminho que leva à raiz do site - assim, /home , /home/noisepages e /home/noisepages/www

    
por 13.08.2010 / 18:13
5

certifique-se de que / home / dev tenha permissões corretas

chmod +x /home/dev
    
por 13.08.2010 / 16:27
2

Também tive problemas com permissões no php-fpm, especialmente com sessões php. Acontece que eu tinha que modificar o usuário que o php-fpm usa para executar processos, já que por padrão ele era configurado para o usuário "nobody".

tutorial sobre isso aqui: link

    
por 11.08.2011 / 17:52
1

Eu tive um problema no simlar que me trouxe até aqui. Minha solução (com base na resposta escolhida) foi fazer um

chown -R root:www-data /home/noisepages/www
chmod g+w -R /home/noisepages/www

Agora funciona bem:)

    
por 07.11.2013 / 23:31