开启了所有权限,但是访问网站还是出现 Apache: access denied because search permissions are missing

前一段时间遇到的问题,想起来了给记一下。
在虚拟机的linux下配置好php环境后,访问localhost正常出现apache安装成功的的页面,但是当我想访问根目录下的index.php文件的时候,便会出现 access denied界面,返回http code 403.
说是拒绝访问,那就先看下权限

首先,检查目录、文件权限

因为是apache的网站根目录是虚拟机中的共享目录,查看权限后发现全都是777的,所有人都可读可写可执行。所以问题不在这里

然后,检查apache配置

最后是把能找到的目录权限全部配置成

# apache 2.4.6
AllowOverride All
Require all granted

把能开的权限都打开。
还是不行。
【以上两部检查baidu的时候还是能搜到很多的】

再接再厉

关闭防火墙,多次重启apache,当然还是不行。
然后我尝试访问一个不存在的文件 /no_exist.php 的时候,会返回 404 not found.
所以说,我确实能够访问到网站目录,也能找到目录下的文件,但只是没有权限打开并解析文件。

找到解决方案,是selinux的问题

【点击这里查看详情】
自己本地开发时,可以选择关闭selinux

vim /etc/selinux/config

SELINUX=disabled

然后重启就解决了。
也可以选择其他的方法尝试,如上面链接里提到的

chcon -R -t httpd_sys_content_t  /path/to/you/wwwroot

发表评论

电子邮件地址不会被公开。 必填项已用*标注