Nginx 更改站点目录后变成找不到页面

2015-10-12 11:14:25 +08:00
 jaleo
新手转了 Nginx 1.8 , centos 7.1 的系统。
Nginx 的默认站点目录是 /usr/share/nginx/html ,我建了一个目录 /usr/share/nginx/html/mysite/,把默认的几个 html 文件移到了 mysite 下。
配置 /etc/nginx/conf.d/mysite.conf ,打开站点页面,一切正常。

现在我把站点目录换到 /home/jaleo/www/mysite ,修改 /etc/nginx/conf.d/mysite.conf ,再打开网站,显示 404 了。
cat /var/log/nginx/error.log ,发现有权限 denied 的日志
但我看了 /home/jaleo/www/mysite 目录的权限,是 775 。
我又试了其他目录,发现只要站点目录指向 /home/jaleo 下,就打不开页面。
不知道还有什么地方没有配置好,请指点。
6837 次点击
所在节点    Linux
22 条回复
CodingPuppy
2015-10-12 11:24:02 +08:00
头像不错~
nonozone
2015-10-12 11:25:39 +08:00
除了权限,你还要看看你的文件归属啊...
venster
2015-10-12 11:29:18 +08:00
setenforce 0 试试看
yexiaoxing
2015-10-12 12:04:49 +08:00
目录是 775 那文件呢
just1
2015-10-12 12:41:19 +08:00
不是 nginx.conf
xdz0611
2015-10-12 14:19:37 +08:00
不要把 web 目录指向 /home 目录, home 目录都是有权限限制的,默认情况下只有 owner 自己能访问。但是你的 nginx 目测是以 nginx 用户启动的,所以肯定不能访问啦。

建议的 web 目录一般放在 /data/www 或者 /var/www 下哦,这样默认也不会有权限问题。
zjengjie
2015-10-12 14:34:51 +08:00
同问,之前我也遇到过,改了 owner ( www-data )也不行,后来不想折腾了,就让他在默认文件夹呆着了。
raysonx
2015-10-12 14:41:55 +08:00
不建议把 web 目录放在 home 下。
如果真要放的话,从 web 目录向根目录一层一层地检查 nginx 用户是否具有 r 权限和 x 权限。我估计是中间的某一层目录没有 x 权限所致
ryd994
2015-10-12 14:46:21 +08:00
你 service nginx reload 了么?
另外, nginx 需要对所有上级目录有 rx ,检查中间的
jaleo
2015-10-12 16:32:45 +08:00
多谢指点 我晚上去检查下权限
上面的几位说的有道理 站点最好不要放在 home 下
varnotfound
2015-10-12 16:32:54 +08:00
得看下 nginx 当前运行使用的用户对目录的权限,每级目录都看下
我遇到只有中间一个目录没有权限,其他目录都有权限,文件访问不了的
orFish
2015-10-12 16:49:07 +08:00
注意下用户组
nginx 的 user group 配置是否和 www 目录所属用户组一样。
xierch
2015-10-12 17:50:56 +08:00
除了检查 /home/jaleo/www/mysite 的权限
还要检查 /home/jaleo/www 、/home/jaleo 和 /home 哦
strahe
2015-10-12 19:53:38 +08:00
一层层检查权限,也不建议你放这么深,我习惯的路径:/data/{www, server, logs, ssl, backup}
你可以参考一下
randyzhao
2015-10-12 19:57:42 +08:00
用户问题
lxy42
2015-10-12 20:10:38 +08:00
我也遇到过类似问题, nginx uwsgi django 部署在 centos 上,静态文件放在 /home/www/static/下, nginx 是以 nginx 用户运行的, nginx 用户添加到 www 的用户组中, static 的目录权限是 750 ,可是 nginx 就是访问不到静态文件。后来干脆把运行用户设为 www 。
lxy42
2015-10-12 20:31:04 +08:00
就刚刚我把 nginx 的运行用户重新设为 nginx ,重启 nginx 服务后发现能正常访问 static 目录了。前后的区别是原来的 nginx 用户是没有设置登录密码的,现在我设置密码了,不知道只是不是主要原因?
jaleo
2015-10-12 20:36:54 +08:00
@xierch 原来是 /home/jaleo 这个目录权限不够
raysonx
2015-10-12 20:52:14 +08:00
@lxy42 和密码没有关系,因为这个用户不需要登录。另外,不要允许 nginx 用户登录(这是默认的),否则你就等着有人扫 ssh 密码爆菊吧。在 /etc/passwd 里面把该用户的 shell 设置为 /sbin/nologin 禁止登录
xiaoz
2015-10-12 20:54:41 +08:00
看看用户权限呢, chown www:www 网站目录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX