2
6月
2025
为什么 Apache Web 服务器会收到错误 AH01630:客户端被服务器配置拒绝
16:46

为什么 Apache Web 服务器会收到错误 AH01630:客户端被服务器配置拒绝

2 6月 2025 16:46

解决Apache Web服务器错误AH01630的问题。

症状

打开网页时,如果权限设置不正确,会出现Web服务器错误AH01630。

访问日志中有这样的错误。

[Mon Jun 02 13:04:22.143071 2025] [authz_core:error] [pid 46931] [客户端 127.0.0.1:52900] AH01630:客户端被服务器配置拒绝:/home/user/site/
[Mon Jun 02 13:05:49.982705 2025] [authz_core:error] [pid 47024] [client 127.0.0.1:44616] AH01630:客户端被服务器配置拒绝:/home/user/site/index.php

原因在于 Apache 配置设置。

我怎样才能重现该错误?

sudo nano /etc/apache2/apache2.conf

<前><目录/>
Options FollowSymLinks
AllowOverride None
Require all Denied
</目录></前>

阿帕奇2

Ctrl+O、“输入”、Ctrl-X

systemctl restart apache2.service

现在,每当您尝试打开网站时,您都会收到错误 AH01630。

如何解决问题?

1.编辑apache2.conf文件

在文件中 /etc/apache2/apache2.conf 一定有要求全部授予

<前><目录/>
Options FollowSymLinks
AllowOverride All

    Require all Granted

</目录></前>

AllowOverride All 指令是可选的。 如果无,则 .htaccess 文件无效。

2.为虚拟主机启用a2enmod vhost_alias_module模块

sudo a2enmod vhost_alias
sudo a2enmod mod_authz_host
sudo systemctl restart apache2

下一点需要此命令。

3、编辑sites-available目录下的.conf文件——虚拟主机配置文件

我们限制对文件中的站点和虚拟目录的访问权限

sudo nano /etc/apache2/sites-available/file.conf

在虚拟主机描述部分中,查找目录部分 - 它描述了 PHP 文档和 Apache 访问权限所在的文件夹:

    Options Indexes MultiViews
    AllowOverride All
    Require all Denied
    Allow from 127.0.0.1
目录>前>

这里我_限制仅从当前计算机访问测试服务器_ - Web服务器(localhost)127.0.0.1。

要允许任何 IP 地址的完全访问,您需要删除指令“**允许来自 127.0.0.1**“并允许从任何地方访问 **要求全部授予**。

! 从 Apache 2.4 开始,conf 文件格式发生了变化:指令“**订单拒绝、允许**”。 查看官方 [版本 2.2 和 2.4 之间的更改列表](https://httpd.apache.org/docs/2.4/upgrading.html#access)。

! !! 具体启用该模块 `authz_host` командой `sudo a2enmod authz_host` 不是必需的,因为 authz_host 和 authz_core 模块默认启用。

~~重新启动服务~~编辑.conf文件后重新读取Apache Web服务器配置文件

    sudo systemctl 重新加载 apache2.service

或

    sudo apachectl -k graceful

#### 4.检查站点主目录中是否有隐藏的.htaccess文件

.htaccess 文件作用于对 Web 服务器文档的每个请求。 该文件必须位于站点的文档主目录中,并且还可能包含旧版订单拒绝、允许指令。 根据 [从 Apache 2.2 迁移到 Apache 2.4 的官方文档](https://httpd.apache.org/docs/2.4/upgrading.html#access),混合新指令 [允许覆盖](https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride) 而旧的“命令拒绝、允许”可能会导致不可预测的后果。

! 最好在虚拟主机文件中指定用于调试网站的主机( **.conf**),
! 在  部分中使用“允许来自 ”指令,例如:

! 允许来自 127.0.0.1

#### 5. Web服务器对文件的访问权限

设置对 ./site_dir 目录及其中所有文件的正确访问权限。

光盘~
    sudo chown -R www-data:www-data ./site_dir
    sudo find site_dir/ -type d -exec chmod 755 {} \;
    sudo find site_dir/ -type f -exec chmod 644 {} \;

#### 6. 主机文件

    cat /etc/hosts | less

在其中,我之前添加了一行,例如
127.0.0.1 我的网站

其中 mysite 是虚拟主机的站点别名(对应于 ServerName mysite 指令
在文件 /etc/apache2/sites-available/file.conf 中

### 检查

检查在浏览器中打开带有前缀 http://mysite 的网页 - 网站打开时没有错误。


相关出版物