对于那些被 Apache 2.4 上反复出现的“禁止访问”消息搞得筋疲力尽的人来说

大家好,
我是Mandai,Wild团队负责开发工作的成员。

我最近安装了 Apache 2.4,但反复出现“禁止访问”消息,这让我很沮丧,所以我整理了一份我尝试过的方法清单。

 

此错误内容

这次我遇到的错误是这样的:

[Mon Jun 05 09:45:45.490521 2017] [core:crit] [pid 8125] (13)权限被拒绝:[client 127.0.0.1:36174] AH00529: /var/www/vhosts/wordpress/.htaccess pcfg_openfile:无法检查 .htaccess 文件,请确保其可读且“/var/www/vhosts/wordpress/”可执行,引用页:http://wp.localhost/readme.html

 

我在 /etc/hosts 文件中将子域名 wp.localhost 分配给了 127.0.0.1。
正如你所料,这是一个 WordPress 的开发子域名。

我当时正在使用之前用 VirtualBox 创建的虚拟机,所以我想我可以跳过这些设置!

这次,我决定在虚拟机内的桌面环境中使用 Eclipse 进行开发,所以我重启了电脑,以便使用双显示器。
现在回想起来,那是个错误。

 

这次的解决方案

在研究了一个小时左右,发现我能找到的全是关于权限的信息后,我正准备放弃回家,突然想起了 SELinux……
在这种情况下,最好的办法就是……

sudo setenforce 0

 

这是唯一的办法。

一切正常!

所以,系统重启后,上次执行的 setenforce 命令被重置了,对吧?
因为这只是一个临时解决方案,所以我决定不编辑 /etc/selinux/config 文件。

结果是我忘记了那种姿势,它根本就不再是一种姿势了。

基本上,虚拟机是通过“保存状态”停止的,所以从虚拟机的角度来看,它并没有被关闭。

 

还有其他可能性

看来这个错误并非总是由 SELinux 引起的,我找到了各种不同的解释。

 

如果问题是由于权限引起的。

在这种情况下,文档根目录(本例中为 /var/www/vhosts/wordpress/)没有查看权限,因此您无法访问其下的文件。

这可以通过向文档根目录添加执行权限来实现。

chmod +x /var/www/vhosts/wordpress/

 

这就是其中一种模式。

 

如果原因是用户权限问题

这是我首先想到的。
但通常情况下,并非如此。

一般来说,在开发环境中,你不会创建权限为“770”或“750”之类的文件。
最好使用“755”或“644”之类的标准权限。

 

符号链接已禁用

这虽然尴尬,但有时会发生。

添加选项 FollowSymlinks。

你只能小心谨慎。

 

概括

在这种情况下,我希望使用如下所示的 httpd.conf 的最小配置,并尽量避免设置环境。

<VirtualHost wp.localhost:80>服务器名称 wp.localhost 文档根目录 /var/www/vhosts/wordpress<Directory /var/www/vhosts/wordpress> Options FollowSymlinks Includes AllowOverride All Require all granted</Directory></VirtualHost>

 

你绝对不想忘记这个以及 SELinux 设置。

 
就这样。

如果您觉得这篇文章对您有帮助,请点个“赞”!
0
加载中...
0票,平均分:0.00/10
21,657
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。