我在运行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下是否仍然如此。
我应该使用哪个chmod
或chown
命令来确保相关目录具有使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
答案 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