下午新配一个域名,加了nginx配置文件并重启后,发现很多css文件的访问都是403,nginx是子进程是以nobody用户运行的,换成root用户跑重启后访问正常,说明这个是站点文件的权限问题。
开启日志查看报错具体信息,找到对应的目录,发现目录权限都是755,文件的权限都是644,就是说非文件所有者也是可以读的,但为什么呐?
因为站点的程序是放在用户的主目录下的,而linux中用户主目录都是除了root和自己才能访问,其他用户禁止访问,所以问题原因找到了。接下来就是解决了。因为程序放在不用用户主目录下以不同用户运行已经是个规范了,程序不能移动目录,于是就只能把程序里面用户需要访问到的静态文件移动到其他分区目录,再做一个软链到原来位置,保持名字也一样。
一般来说,nginx访问出现403主要有2点原因:
1、对于PHP而言,如果用户没有web目录的权限,则会导致该错误,解决办法:chown -R _user:nginx_user /htdocs
2、未设置index的类型,需要在nginx.conf中的index后面加上要访问的文件类型,例如:index index.php index.html index.htm;
阅读(9088) | 评论(0) | 转发(0) |