有时候Apache配置测路径home/网站目录 明明存在,但是还是提示该网站目录不存在,出现这个问题的原因很有可能是SELinux(Security-Enhanced Linux)引起的。
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件
SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上。
虽然SELinux很好用,但是在多数情况我们还是将其关闭,因为在不了解其机制的情况下使用SELinux会导致软件安装或者应用部署失败。
下面这个就是Red Hat Enterprise Linux上提示的 错误,主要原因是提示网站目录不存在。这个时候最有效的解决的办法就是关闭SELinux。
正在启动 httpd:Warning: DocumentRoot [/home/网站目录] does not exist httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName [失败]
下面是关闭SELinux的几个方法,供参考
方法1:永久性关闭(推荐)
如果不永久性关闭的话,在服务器重启的时候SELinux就会再次启动,进而服务器上配置的服务就又不能正常运行了。
1、查看selinux状态
查看selinux的详细状态,如果为enable则表示为开启。(这些操作都需要在root权限下执行)
# /usr/sbin/sestatus -v
查看selinux的模式
# getenforce
2、关闭selinux
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
上面的命令是不打开文件的情况下直接替换/etc/selinux/config 文件里的SELINUX=enforcing 为SELINUX=disabled ,也就是说您也可以手动打开编辑。
3、重启生效
# reboot
方法2:临时性关闭
这个方法是立即生效,不需要重启,但是重启以后配置就失效了。
1、设置selinux为permissive模式(即关闭)
# setenforce 0
2、设置selinux为enforcing模式(即开启)
# setenforce 1
这样就关闭SELinux了,当安装软件遇到问题时可以考虑关闭SELinux再进行安装