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

大家好,
我是开发团队野生队的成员 Mandai。
我最近安装了 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