对于那些因 apache2.4 连续遭受 Forbidden 攻击而疲惫不堪的人
你好。
我是Mandai,负责Wild 开发团队。
当我一段时间以来第一次尝试配置 apache 2.4 时,我很沮丧,因为我一直收到 Forbidden,所以我总结了我的尝试。
这次的错误详细信息
我这次遇到的错误如下。
[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
子域 wp.localhost 在 /etc/hosts 中分配给 127.0.0.1。
正如你可以想象的,这是一个 wordpress 开发子域。
由于我重复使用了过去通过 VirtualBox 创建的虚拟机,我想我可以跳过这里的设置!
这次,我决定在虚拟机内的桌面上启动 Eclipse 并进行一些开发,然后重新启动它以具有两个显示器。
现在想来,这也不是什么好事。
这个解决方案
找了一个小时,以为能找到的只是权限相关的信息,正当我准备放弃回家时,我注意到了那些我已经完全忘记的SELinux字符。
在这样的时候,说实话
须藤 setenforce 0
这是唯一的选择。
它安全移动了!
当您重新启动时,先前执行的 setenforce 将被重置。
由于这是临时措施,我决定不编辑 /etc/selinux/config。
最终,我忘记了那个立场,它根本不再是一个立场。
基本上,VM是通过“保存状态”停止的,因此就VM而言并不是关闭的。
还有其他的可能性
看来这个错误并不总是由 SELinux 引起的,我找到了各种答案。
如果权限是原因
文档根目录(本例中为/var/www/vhosts/wordpress/)没有查看权限,因此无法访问底层文件。
这可以通过在文档根目录上添加执行权限来完成。
chmod +x /var/www/vhosts/wordpress/
有一些这样的模式。
如果原因是用户权限
首先考虑一下这一点。
然而,情况往往并非如此。
首先,在开发环境中,文件不是使用“770”或“750”等权限创建的。
我想基于“755”和“644”来思考。
符号链接已禁用
有时会出现这种尴尬的情况。
添加选项 FollowSymlinks。
我们只需要小心。
概括
在这种情况下,我想使用以下最小的httpd.conf配置,并在环境构建上做尽可能少的工作。
<VirtualHost wp.localhost:80>服务器名称 wp.localhost DocumentRoot /var/www/vhosts/wordpress<Directory /var/www/vhosts/wordpress>选项 FollowSymlinks 包括 AllowOverride All 要求全部授予</Directory></VirtualHost>
我绝对不想忘记这个和 SELinux 设置。
就是这样。