不是权限问题引起的nginx 403错误

一台服务器遇到一个故障:访问静态文件的时候nginx报403错误。

一开始以为是没有设置网站默认首页,检查发现首页设置是正常的

index index.html index.htm index.php;

故意请求一个存在的test.html,也同样报403错误

又怀疑是站点目录写错了,但如果故意请求一个不存在的文件会报404错误,只对存在的文件才报403,这又排除了站点目录错误。

又怀疑是目录的权限不对,临时把nginx用户的shell设置为bash,然后通过su nginx的方式登录上去看看,cat /home/user1/www/test.html是可以正常读出文件内容的,也可以基本排除是权限问题。为了验证我的判断,我把/home/user1/全部设置为777,果然和我的预期是一样的:全部777了仍然报403错误,彻底排除权限问题。

最终我只能怀疑selinux了,为了验证我临时把selinux关闭:

setenforce 0

果然

403变成了200,页面正常的打开了。

查了一下资料,如下命令可以解决:

setsebool -P httpd_enable_homedirs 1

当然了,彻底关掉selinux也是一个办法:

vi /etc/selinux/config

SELINUX=enforcing
改为
SELINUX=disabled

保存

 评论
 发表评论
姓   名: