2

我在 CentOS 6 上运行 Nginx,每次尝试访问我的网站时总是得到 403 Forbidden ...

我的配置文件如下所示:

server {
    listen 80;
    server_name mysite.com www.mysite.com;

    location / {
      root /home/mysite/www;
      index index.html;
    }
}

这就是我在 error.log 中发现的

[error] 16853#0: *29 open() "/home/mysite/www/index.html" failed (13: Permission denied), client: xxx.xxx.xxx.xxx, server: mysite.com, request: "GET /test.html HTTP/1.1", host: "mysite.com"

我还对这些目录运行“ls -l”,认为这是关于 chmod 问题......这就是我得到的:

ls -l /usr/share/nginx/html(工作)

-rw-r--r-- 1 root root 3652 Apr 26 20:36 index.html

ls -l /home/mysite/www (不工作)

-rw-r--r-- 1 mysite mysite 3652 Apr 26 20:36 index.html

- - - - - - - - - - - - - - - - - - - - 编辑

ls -ld /home/mysite/www

drwxr-xr-x 2 mysite mysite 4096 Jul 20 20:52 /home/mysite/www

ls -ld /home/mysite

drwxr-xr-x 2 mysite mysite 4096 Jul 20 20:52 www

ls -ld /家

drwx------ 4 mysite mysite 4096 Jul 20 18:39 mysite
4

1 回答 1

2

你说:

ls -ld /home
drwx------ 4 mysite mysite 4096 Jul 20 18:39 mysite

如果 nginx 以普通用户身份运行,可能不是“mysite”,那么它无法访问 /home,因为只有mysiteroot用户拥有此权限。

要找出运行 nginx 的用户类型:

ps faxu

..并搜索nginx进程。要获取 nginx 用户,只需执行

ps 传真 | grep nginx

于 2013-07-21T07:00:12.497 回答