我有Nginx安装在Ubuntu上,我有下一个configuration文件:
server { root /www/test; index index.html index.htm; server_name .dev.mysite.info;
我在/ www / test目录中有HTML文件,并且都正常工作。
现在我想将我的文件夹更改为软链接:
lrwxrwxrwx 1 root root 33 Jun 17 10:39 test -> /root/Dropbox/digital_ocean/test/
但是在浏览器中获取错误消息:
"500 Internal Server Error"
为什么以及如何解决?
更新:
root@ocean:/var/log/nginx# cat error.log 2013/06/17 11:40:27 [crit] 26197#0: *1 stat() "/www/test/" failed (13: Permission denied), client: 195.239.188.28, server: dev.meditat0r.info, request: "GET / HTTP/1.1", host: "meditat0r.info" 2013/06/17 11:40:27 [crit] 26197#0: *1 stat() "/www/test/" failed (13: Permission denied), client: 195.239.188.28, server: dev.meditat0r.info, request: "GET / HTTP/1.1", host: "meditat0r.info" 2013/06/17 11:40:27 [crit] 26197#0: *1 stat() "/www/test/index.html" failed (13: Permission denied), client: 195.239.188.28, server: dev.meditat0r.info, request: "GET / HTTP/1.1", host: "meditat0r.info" 2013/06/17 11:40:27 [crit] 26197#0: *1 stat() "/www/test/index.html" failed (13: Permission denied), client: 195.239.188.28, server: dev.meditat0r.info, request: "GET / HTTP/1.1", host: "meditat0r.info" ... 2013/06/17 11:40:27 [error] 26197#0: *1 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 195.239.188.28, server: dev.meditat0r.info, request: "GET / HTTP/1.1", host: "meditat0r.info"
根文件夹的基本默认权限是rwx —–所以没有人可以读/写root。 你可以:
a)将您的保pipe箱文件夹移到其他位置(最佳方式:创build单独的非root用户)
b)更改权限到/根文件夹(从来没有这样做!)
问题是符号链接如何工作。 一个符号链接基本上是一个路标,说:“你正在寻找的内容不在这里,你必须去看看/root/Dropbox/digital_ocean/test/而不是”。 这意味着/root/Dropbox/digital_ocean/test/必须是a)可以使用与web目录相同的文件系统权限访问,b)需要configurationweb服务器以允许访问该目录。 我不是一个nginx专家,但我相信你需要一个Location指令/root/Dropbox/digital_ocean/test/ 。
检查你的configuration文件,下面的选项可能是相关的。
diable_symlinks
http://nginx.org/en/docs/http/ngx_http_core_module.html#disable_symlinks