Centos7 nginx报错403 forbidden
参考链接:http://www.cnblogs.com/chinway/archive/2017/08/14/7356239.html
因为安全性的考虑这个也是默认会出现的错误,因为SELinux的存在:(
提供一般排错思路
网上大多数是关闭SELinux的方式(我自己不建议关闭),类似于这样
步骤一:
检查目录权限。权限不足的就加个权限吧。
例子:chmod -R 755 / var/www
步骤二:
打开nginx.conf
例子:vim /etc/nginx/nginx.conf
把 user 用户名 改为 user root 或 其它有高权限的用户名称即可
步骤三:
检查/etc/nginx/conf.d/nginx.conf (如果没有自己创建一个)
确保所有的root 后面接的都是你要展示的网站的路径
举例:
root html;
请替换成
root /usr/share/nginx/html;
步骤四:
方式一:
如果是centos,看一下selinux是否关闭了
查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
方式二:
另一种方法不关闭SELinux,并通过这种方法实现了web访问
参考链接:http://blog.csdn.net/qidizi/article/details/41291397
记录一下工具安装和使用
安装人类能看得懂的转化工具:yum install setroubleshoot
echo >audit.log来清空这个日志,再刷新浏览器,访问一下这个url,让只生成一个出错日志
把出错内容转成可以看得懂的:sealert -a ./audit.log >qq.txt
通过转换的结果分析,执行以下命令:
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | sudo audit2allow -M mynginx sudo semodule -i mynginx.pp