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。

发布了15 篇原创文章 · 获赞 0 · 访问量 357

猜你喜欢

转载自blog.csdn.net/weixin_46021767/article/details/103816620
今日推荐