nginx更改默认目录403问题

nginx安装后启动默认访问目录是/usr/share/… ,根据需要可以更改成其他目录,譬如/home/www/html/…
更改后通常都会遇到访问403问题,通过如下几步可以解决403问题:
1.检查nginx.conf user权限是不是root,如果不是则查看该user是否有权限访问新目录
2.查看新目录的文件权限是否可以访问
3.查看SELinux 是否开启。
如果SElinux是开启的,通常很多做法是直接关闭SElinux,
其他可以通过其他方式不需要关闭SElinux也能正常使用nginx,

使用以下指令查看selinux配置:

# getsebool httpd_can_network_connect

#httpd_can_network_connect --> off

SELinux配置将httpd网络连接关闭,所以很自然将其启用即可:

setsebool -P httpd_can_network_connect 1

如果还不行,再检查网站目录和文件的权限。为方便起见直接用-lZ选项。用于显示详细信息和SELinux权限信息

[root@localhost html]# ls -lZ
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 archive.html
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 blog
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 blog_backup
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 blog.htm
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 blog.html
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 css
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 home_page
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 home_start #问题行

再查看selinx的工作状态,判断是不是SELinux引起的。

[root@localhost httpd]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
这就是导致网站权限不正确的原因。

我猜测可能是在selinux启用时对目录或文件进行操作导致的。

所以使用chcon更改SELinux权限以及显示结果如下:

setenforce 0 #必须暂时停止SELinux,否则可能导致操作失败。
chcon -t httpd_sys_content_t -R /var/www/html/home_start/ #R参数是递归操作的意思

经过修改就会发现SELinux的对应权限已经和其他目录相同了!都是httpd_sys_content_t。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值