共计 1045 个字符,预计需要花费 3 分钟才能阅读完成。
刚装了 Apache,我保证 /etc/httpd/conf/httpd.conf 这里面设置的没问题,什么权限啥的一点问题都没有,不要再说什么 Deny from all 了,根本不是这玩意儿的问题。我的 httpd.conf 里面都是 Allow from all,怎么会是配置问题。
那是哪里的问题呢?
请接着看:
我在 /var/www/html 里面使用命令产生一个简单的文件
echo “hello” >index.html
然后访问我的 Apache 服务器地址 http://192.168.116.129,出现了 hello 的页面。现在删除这个简单的 index.html,把 github 首页保存为 index.html 文件然后送到 /var/www/html 下,再次打开 http://192.168.116.129,结果就是 403 Forbidden。我很费解,怎么会这样,同样是 index.html 为什么会是不同的结果。为了证明不是文件权限问题,我以 root 权限运行 chmod -R 777/var/www/ 之后把目录下所有文件权限全部升高,结果还是 403,简直怪了,这可是 777 权限!更奇怪的是访问我自己写的 index.html 就可以,访问我从别处复制过来 github 的 index.html 的就不行。
后来我搜到了几篇文章,从 Google 那边得到的消息是 CentOS 系统会自动安装 selinux,这玩意儿有极其严格的权限机制,导致从别处复制过来的 index.html 访问会出现问题,当然你要是在 /var/www/html 自建目录去访问,由于 selinux 的阻碍也肯定会出问题。所以就用简单粗暴的方法直接废了 selinux,打开 /etc/selinux/config 文件,把 SELINUX=enforcing 改为 SELINUX=disable,重启 centos,你要是不想重启的话可以运行 setenforce 0 命令即时生效。
现在可以了,访问 http://192.168.116.129 出现了我自己保存的 index.html 页面,而且这页面看起来和 github 完全一样,除了链接不能点之外~~
所以你要是找了很久都找不到你的 Apache 为何总是 403 错误,你就把 selinux 干掉再试试。除此之外 iptables 也可能会阻止访问,所以最好配置下,对于我这种在虚拟机里玩 Apache 的,一般是把 iptables 也停掉的。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137357.htm