user Nginx www-data; worker_processes 4; pid /var/run/Nginx.pid; ...
我想在我的用户目录中创建一个简单的静态站点与Web根目录(假设我的用户名是’ubuntu’).这是我的测试网站的配置.
在/ etc / Nginx的/网站可用/测试现场
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 root /home; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file,then # as directory,then fall back to index.html try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/Nginx/naxsi.rules } }
现在显然将我的所有文件放在web根目录中,所以我不会把它放在真正的服务器上,但这说明了我的观点.如果我在/home/index.html(不在我的ubuntu用户文件夹中)创建一个简单的网页,我可以访问http:// localhost /页面
这个工作很好.现在我想简单地将web根目录INSIDE放在用户文件夹中.所以在/ etc / Nginx / sites-available / test-site中我将root指令更改为`root / home / ubuntu;.我重新创建了测试站点的符号链接,将/home/index.html移动到/home/ubuntu/index.html并停止并启动Nginx服务器.现在我得到403 Forbidden错误.
我的第一个怀疑是,这是一个许可问题.但是,当我运行ls -al index.html时,我看到了
-rw-r--r-- 1 Nginx www-data 183 Aug 12 13:13 index.html
哪个看起来对我好?甚至运行chmod 777 /home/ubuntu/index.html以便权限
-rwxrwxrwx 1 Nginx www-data 183 Aug 12 13:13 index.html
没有帮助. /etc/init.d/Nginx configtest也不会产生任何错误,我确定/ etc /中的符号链接
所以我已经在这几个小时了,我现在想知道我的用户目录有什么特别之处,我无法提供任何内容吗?这几天Ubuntu加密主目录?这可能是问题吗?我在EC2 Ubuntu 12.04实例上也有这个问题(不知道用户目录是否在那里加密)
因此,Ubuntu 12.04中用户主目录的默认权限似乎是700.Nginx需要具有读取权限才能提供应该提供的文件,并且在从根到提供文件的路径中的每个父目录中都具有执行权限.
您可以通过运行为您的用户目录提供这些权限
chmod 701 user_home
您还可以使用755,这是许多系统上主目录的默认权限设置.
只要Nginx运行的用户/组(如Nginx.conf中所定义)对要提供的所有文件具有READ权限,web根目录中的目录/文件就可以属于www-data用户或常规个人用户.对所有Web根目录执行权限.
我只是将我的Web根目录中的所有目录设置为我的用户帐户所有并拥有权限755并且我将从Web根目录提供的所有文件设置为具有权限664,因为这些是我的计算机上的默认设置.
关于将权限号转换为String Rep的注意事项.
Ex. drwxr-x--x becomes 751.
忽略第一个字符(d代表目录,– 代表文件等).其余9个字符组成二进制三元组,其中任何非短划线字符为1,短划线为0.
So drwxr-x--x becomes rwxr-x--x becomes 111 101 001 which is converted to a decimal 751
当我处理权限时,我需要对此进行复习.