首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Nginx的403禁止所有文件?

Nginx的403禁止所有文件?
EN

Stack Overflow用户
提问于 2018-01-03 06:43:59
回答 2查看 0关注 0票数 0

我在CentOS 5上安装了PHP-FPM的nginx,

Nginx以www-data:www-data的形式运行,默认的“EPEL欢迎使用nginx”站点(拥有644权限的root用户)加载正常。

nginx配置文件有一个include指令/etc/nginx/sites-enabled/*.conf,我有一个配置文件example.com.conf,因此:

代码语言:javascript
复制
server {
 listen 80;

 Virtual Host Name
 server_name www.example.com example.com;


 location / {
   root /home/demo/sites/example.com/public_html;
   index index.php index.htm index.html;
 }

 location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  PATH_INFO $fastcgi_script_name;
  fastcgi_param  SCRIPT_FILENAME  /home/demo/sites/example.com/public_html$fastcgi_script_name;
  include        fastcgi_params;
 }
}

尽管public_html被www-data:www-data拥有2777个文件权限,但是该网站无法提供任何内容 -

代码语言:javascript
复制
 [error] 4167#0: *4 open() "/home/demo/sites/example.com/public_html/index.html" failed (13: Permission denied), client: XX.XXX.XXX.XX, server: www.example.com, request: "GET /index.html HTTP/1.1", host: "www.example.com"

我发现许多用户从nginx获得403s,但是我所看到的大部分都涉及到Ruby / Passenger的更复杂的设置(过去我实际上已经成功了),或者只有PHP -FPM参与,所以似乎没有什么帮助。

我在这里做了些傻事吗?

EN

回答 2

Stack Overflow用户

发布于 2018-01-03 15:03:47

一个经常被忽略的权限要求是用户需要在文件的每个父目录中访问该文件的权限。检查/,/ home,/ home / demo等的www-data x access权限。我的猜测是,/ home可能是770,www-data无法通过它来获取任何subdir。如果是,请尝试chmod o + x / home(或任何目录拒绝请求)。

可以使用 namei -om /path/to/check

票数 0
EN

Stack Overflow用户

发布于 2018-01-03 15:48:35

如果你permission denied在验证文件夹的权限后仍然看到,可能是SELinux限制访问。

要检查SELinux是否正在运行:

代码语言:javascript
复制
# getenforce

要在下一次重新启动之前禁用SELinux:

代码语言:javascript
复制
# setenforce Permissive

重新启动Nginx,看看问题是否存在。为了让nginx能够为你的www目录服务(确保你在测试之前重新打开SELinux setenforce Enforcing

代码语言:javascript
复制
# chcon -Rt httpd_sys_content_t /path/to/www

在这里看到我的答案更多的细节

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档