Estou usando node.js
o Nginx como servidor web rodando no Slackware 14.1.
Criei uma página que carrega um arquivo. Na minha máquina de desenvolvimento (como o Debian) funciona bem, mas na produção (servidor Slackware) recebo este erro em /var/log/nginx/error.log
:
2015/10/09 15:08:44 [crit] 1231#0: *5 open() "/var/lib/nginx/client_body/0000000003" failed (13: Permission denied), client: 10.0.0.22, server: localhost, request: "POST /home/perfil_usuario/upload HTTP/1.1", host: "aluno.fio.edu.br", referrer: "http://aluno.fio.edu.br/home/perfil_usuario/upload"
E o Nginx retorna um arquivo 500 Internal Server Error
.
Pesquisei e tentei as correções de vários posts, mas o erro continua.
Responder1
Como diz a mensagem de erro, este é umPermissõesemitir.
Isso geralmente é causado pelo usuário do processo nginx ( www-data
por exemplo) não ter acesso de leitura/execução a um dos diretórios pai.
Verifique /var/lib/nginx/client_body/
e certifique-se de que a permissão esteja correta em cada nível de diretório para resolver o problema.
Responder2
No meu caso, o problema era que a propriedade de /var/lib/nginx estava errada. Todos os outros diretórios nos quais o nginx grava pertenciam a www-data, enquanto o diretório 'nginx pertencia ao root. Nesse caso, a melhor solução é alterar a propriedade do diretório para corresponder aos outros diretórios nos quais o nginx grava.
Responder3
No meu caso, a propriedade de /var/lib/nginx foi definida como www-data:adm e a permissão foi definida como 770
As mudanças funcionaram para mim foi
- raiz chown:root /var/lib/nginx/
- chmod 0755 /var/lib/nginx
Além disso, /var/lib/nginx/tmp era diferente. Atualizou a propriedade e a permissão conforme os pontos 1 e 2
e o conteúdo em /var/lib/nginx/tmp foi mencionado
drx------. 2 www-data root 6 29 de setembro 23:37 uwsgi
drx------. 2 www-data root 6 29 de setembro 23:37 scgi
drx------. 2 www-data root 6 29 de setembro 23:37 fastcgi
drx------. 10 www-data root 78 20 de outubro 12:17 proxy
drx------. 2 www-data root 6 20 de outubro 12:20 client_body
Depois de definir essas permissões e propriedade, reinicie o nginx. E você não verá o erro de permissão negada e o Nginx parou de fornecer 500 erros internos do servidor e eu estava vendo o resultado esperado. Obrigado