我正在使用root用户运行父进程,并使用有权读取/写入静态文件夹的用户名运行worker进程。我收到权限错误。
2016/02/15 13:43:09 [error] 6944#0: *855 open() "/home/jisu/sited/site/static/css/bootstrap.min.css" failed (13: Permission denied), client: 24.185.93.168, server: web.site.edu, request: "GET /static/css/bootstrap.min.css HTTP/1.1", host: "web.site.edu", referrer: "http://web.site.edu/"
处理:
[jisu@web home]$ ps -ef | fgrep nginx
root 2603 1 0 Feb09 ? 00:00:00 nginx: master process /usr/sbin/nginx
jisu 6944 2603 0 13:38 ? 00:00:00 nginx: worker process
jisu 6945 2603 0 13:38 ? 00:00:00 nginx: worker process
jisu 7015 6846 0 13:44 pts/0 00:00:00 grep -F --color=auto nginx
目录路径也正确:
location /static/ {
alias /home/jisu/sited/site/static/;
}
让我知道您是否还有其他配置要查看。
将 SELinux 更改为"宽松"模式解决了此问题。它处于"强制"模式。
nginx可以访问整个路径层次结构吗?由于你在那里有/home,nginx 需要能够 +x 进入从/home 到/static 的每个目录。不幸的是,据我所知,仅让它只能访问该目录是不够的。它不需要能够写入每个目录,但它需要能够"执行"路径中的每个目录。