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
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.
certifique-se de que / home / dev tenha permissões corretas
chmod +x /home/dev
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
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:)