Nginx 403禁止所有文件

我在CentOS 5盒子上安装了Nginx和PHP-FPM,但是我很难使它服务于我的任何文件-无论是否为PHP。

Nginx以www-data:www-data的身份运行,默认的“欢迎使用EPEL上的nginx”站点(由root:root拥有644权限)可以很好地加载。

nginx配置文件" title="nginx配置文件">nginx配置文件具有 /etc/nginx/sites-enabled/*.conf 的include指令 而我有一个配置文件

_example.com.conf_ ,因此:

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由具有2777文件权限的www-data:www-data拥有,但该网站无法提供任何内容-

 [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,因此它们似乎无济于事。

我在这里做了些傻事吗?

回答:

一个经常被忽略的权限要求是,用户需要在文件的每个父目录中具有x个权限才能访问该文件。检查/,/ home,/ home / demo等的权限,以进行www-

data x访问。我的猜测是/ home大概是770,而www-data无法通过chdir进入任何子目录。如果是这样,请尝试使用chmod o + x /

home(或任何拒绝该请求的目录)。

编辑:要轻松显示路径上的所有权限,可以使用 namei -om /path/to/check

以上是 Nginx 403禁止所有文件 的全部内容, 来源链接: utcz.com/qa/407559.html

回到顶部