Apache2:'AH01630:服务器配置拒绝客户端'

Haz*_*ass 417 apache2 apache2.4 server

尝试通过浏览器访问localhost时出现此错误.

AH01630: client denied by server configuration
Run Code Online (Sandbox Code Playgroud)

我使用以下方法检查了我的站点文件

sudo chmod 777 -R *
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user-name/www/myproject
<Directory />
    Options FollowSymLinks
    AllowOverride all
    Allow from all
</Directory>

<Location />
  Allow from all
  Order Deny,Allow
</Location>

<Directory  /home/user-name/www/myproject/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride all
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
Run Code Online (Sandbox Code Playgroud)

Jay*_*lie 751

如果您使用的是Apache 2.4

您必须检查允许和拒绝规则

查看http://httpd.apache.org/docs/2.4/upgrading.html#access

在2.2中,使用指令Order,Allow,Deny和Satisfy完成了基于客户端主机名,IP地址和客户端请求的其他特征的访问控制.

在2.4中,使用新模块mod_authz_host以与其他授权检查相同的方式完成此类访问控制.

新指令是要求:

2.2配置:

Order allow,deny
Allow from all
Run Code Online (Sandbox Code Playgroud)

2.4配置:

Require all granted
Run Code Online (Sandbox Code Playgroud)

也不要忘记在这些更改后重启apache服务器(# service httpd restart)

  • 有一点需要注意:如果你在网上引用一个配置,很可能他们同时使用了"订单允许,拒绝......"和"需要全部授权".它不起作用.它只需要是其中之一,具体取决于您的版本.这就是阻止我开始解决问题的原因. (4认同)
  • 使用Apache 2.4的OSX 10.10优胜美地的作品 (2认同)
  • 配置*what*(即"需要所有授权"的位置?在某些.conf文件中?) (2认同)
  • @Alexis 目录(或位置)。请参阅下一个答案中的屏幕截图。 (2认同)
  • 在我的情况下,我在`DocumentRoot`和`<Directory>`路径中有错误. (2认同)

val*_*505 297

对于所有目录Require all granted而不是写Allow from all 就像是

更新

如果以上不起作用,那么也删除以下提到的行:

订单允许,拒绝

  • `要求所有被授予的'为我做了,谢谢! (18认同)
  • 一旦我删除了"订单允许,拒绝"行,我就为我工作了. (14认同)
  • 当有人在日志中没有任何输出的情况下破坏Apache配置时,我是唯一一个讨厌它的人.(嘿,男孩们,'允许来自所有人'已经退休了,原因...... ...... (6认同)

Tim*_*Tim 33

仔细检查DocumentRoot路径是否正确.这可能会导致此错误.

  • 更具体地说,我发现这是我的问题,因为我的DocumentRoot声明中没有尾部斜杠,但确实在`<Directory>`块中使用了一个斜杠.我也有一些案例差异.一旦我将这两个值相互制作了副本(没有斜线),它就能完美地运行. (3认同)

小智 21

我做了一些ravisorg向OSX 10.10 Yosemite建议将Apache升级到版本2.4的更改.以下是添加到http.conf的更改.

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory /Volumes/Data/Data/USER/Sites/>
    AllowOverride none
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)


RAC*_*RAC 11

这让我绝对坚持了一天半,但如果所有其他解决方案都尝试失败,我找到了解决办法.

这适用于macOS.

  • 转到活动监视器(聚光灯搜索:活动)
  • 在活动监视器中搜索作为Apache服务的httpd
  • 选择属于root的那个,然后单击左上角的X将其关闭.

那时我立刻停止了403错误,一切都按预期开始工作.奇怪的是我甚至没有重启apache它只是工作,我想当我去我的本地主机时它重新启动,老实说我不知道​​但我想问题是Apache在使用apachectl restart时实际上没有重启,或者停止或开始.希望这有助于某人.


小智 11

对我来说,所有建议的解决方案都不起作用。这会有所帮助,如果您使用 cgi、fastcig 或 fpm 作为代理,则必须在虚拟主机中添加一个位置以避免此问题。这允许 404 成为直通代理。

<Location />
require all granted
</Location>
Run Code Online (Sandbox Code Playgroud)


Alb*_*ing 7

问题出在VirtualHost中,但可能不是

要求全部授予

确认您的配置是正确的,这是正确的样本 在此输入图像描述


sh6*_*210 5

就我而言,

我正在使用 macOS Mojave (Apache/2.4.34)。/etc/apache2/extra/httpd-vhosts.conf 文件中的虚拟主机设置存在问题。添加所需的目录标签后,我的问题就消失了。

要求全部授予

希望完整的虚拟主机设置结构能够帮助您。

<VirtualHost *:80>
    DocumentRoot "/Users/vagabond/Sites/MainProjectFolderName/public/"
    ServerName project.loc

    <Directory /Users/vagabond/Sites/MainProjectFolderName/public/>
        Require all granted
    </Directory>

    ErrorLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-error_log"
    CustomLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-access_log" common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您只需将 MainProjectFolderName 替换为您的确切 ProjectFolderName 即可。