NginX现在为我的网站提供了哪些正确的权限?

时间:2017-01-06 07:24:18

标签: ubuntu nginx

我在运行Ubuntu 16.10的笔记本电脑上运行本地测试服务器。我在运行Apache2,但我决定切换到NginX。按照像this one这样的指南,我想我已经启动并运行了NginX,以及PHP fpm。

但是,当我加载其中一个网站时,我会收到403 Forbidden error。 NginX错误日志说:

[error] 14107#14107: *1 directory index of "/var/www/example.com/" is forbidden, client: 127.0.0.1, server: example.com, request: "GET / HTTP/1.1", host: "example.com"

我知道路径中的所有父目录都应该具有正确的权限,但我不清楚确切的权限是什么。如果我理解正确,在Apache2下,用户或组www-data可以访问这些目录,但我不确定在NginX下是否仍然如此。

我应该使用哪个chmodchown命令来确保相关目录具有使NginX可以访问的权限?请注意,我正在完全替换Apache2使用NginX,因此不需要为Apache保留任何设置。

另外,作为参考,这是我网站的当前目录路径和权限。请注意,/var/www中的目录是我的Dropbox文件夹中目录的符号链接,如果有任何影响。

$ namei -om /var/www/example.com
f: /var/www/example.com
 drwxr-xr-x root     root     /
 drwxr-xr-x root     root     var
 drwxr-xr-x www-data www-data www
 lrwxrwxrwx www-data www-data example.com -> /home/user/Dropbox/subdir1/subdir2/Site/
   drwxr-xr-x root     root     /
   drwxr-xr-x root     root     home
   drwxr-xr-x user     user     user
   drwx--x--x user     user     subdir1
   drwxrwxr-x user     user     subdir2
   drwxr-xr-x user     user     Web
   drwxr-xr-x user     user     Site

1 个答案:

答案 0 :(得分:1)

你对subdir1有错误的权限,修复它:

chmod 755 /home/user/Dropbox/subdir1

甚至更好(递归):

find /var/www/example.com -type d -print0 | xargs -0 chmod 755

对于nginx用户,您可以使用user配置指令进行设置:

user www-data;

您可以将任何用户与NGINX服务器一起使用,您只需要对项目的文件夹(755)和文件(644)具有正确的权限。我更喜欢不同的用户nginx,这是一种很好的做法,但不是必需的。

您可以在Ubuntu / Debian中创建系统nginx用户,如下所示:

sudo adduser --system --no-create-home --disabled-login --disabled-password --group nginx