Я использую node.js
Nginx в качестве веб-сервера, работающего на Slackware 14.1.
Я создал страницу, которая загружает файл. На моей машине разработки (вроде Debian) она работает нормально, но на продакшене (сервер Slackware) я получаю эту ошибку /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"
А Nginx возвращает 500 Internal Server Error
.
Я искал и пробовал исправления из многих постов, но ошибка осталась.
решение1
Как говорится в сообщении об ошибке, этоРазрешенияпроблема.
Обычно это происходит из-за того, что пользователь процесса nginx ( www-data
например) не имеет прав на чтение/выполнение одного из родительских каталогов.
/var/lib/nginx/client_body/
Чтобы решить проблему, проверьте и убедитесь, что разрешения на каждом уровне каталога верны.
решение2
В моем случае проблема была в том, что владелец /var/lib/nginx был неправильным. Все остальные каталоги, в которые пишет nginx, принадлежали www-data, тогда как 'каталог nginx принадлежал root. В этом случае лучшим решением будет изменить владельца каталога так, чтобы он соответствовал владельцам других каталогов, в которые пишет nginx.
решение3
В моем случае владельцем /var/lib/nginx был установлен www-data:adm, а права доступа были установлены на 770.
Изменения сработали со мной было
- chown root:root /var/lib/nginx/
- chmod 0755 /var/lib/nginx
Также /var/lib/nginx/tmp был другим, обновил владельца и разрешения согласно пунктам 1 и 2.
и содержимое в /var/lib/nginx/tmp было упомянуто
drwx------. 2 www-data root 6 29 сен 23:37 uwsgi
drwx------. 2 www-data root 6 сен 29 23:37 scgi
drwx------. 2 www-data root 6 сен 29 23:37 fastcgi
drwx------. 10 www-data root 78 20 окт 12:17 proxy
drwx------. 2 www-data root 6 окт. 20 12:20 client_body
После установки этих разрешений и владельца перезапустите nginx. И вы не увидите ошибку «отказано в доступе», и Nginx перестал выдавать ошибку 500 Internal server error, и я увидел ожидаемый результат. Спасибо