apache - Apache: 客户端拒绝服务器配置

  显示原文与译文双语对照的内容
0 0

我正在获取

[Tue Apr 24 12 :12:55 2012 ] [error] [client 127.0.0.1 ] 客户端被服务器配置拒绝: /labs/Projects/Nebula/bin/

我的目录结构类似( 我使用的是 Symfony 2,应该是类似于其他网站框架的结构)

enter image description here

我的vhosts设置如下:

<VirtualHost nebula:80>
 DocumentRoot"/labs/Projects/Nebula/web/"
 ServerName nebula
 ErrorLog"/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory"/labs/Projects/Nebula/">
 Options All
 AllowOverride All
 Order allow,deny
 Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>

我想知道问题是什么,我如何修复它?

时间:原作者:10个回答

0 0

Apache 2.4.3 ( 或者稍早一点) 添加了一个新的安全特性,通常会导致这个错误。 你还将看到表单"客户端被服务器配置拒绝"的日志消息。 这里功能需要授权用户标识才能访问目录。 默认情况下,它在 httpd.conf 附带的中打开。 你可以看到带有指令的功能的启用

Require all denied

这基本上说拒绝对所有用户的访问。 要解决这里问题,请删除拒绝的指令( 或者更好) 将以下指令添加到要授予访问权限的目录:

Require all granted

如中所示

<Directory"your directory here">
 Order allow,deny
 Allow from all
 # New directive needed in Apache 2.4.3: 
 Require all granted
</Directory>
原作者:
0 0

这是我在debian上的1.4虚拟主机文件,它工作正常。

 <Directory/var/www/sf_project/web/>
 Options All Indexes FollowSymLinks 
 AllowOverride All
 Order allow,deny
 Allow from all
 </Directory>

如果你不限制对特定ip区域的访问,比如 localhost将使用:

Allow from 127.0.0.0/8

mod_authz_host 负责过滤ip范围。 你可以在那里查找详细的东西。

但是问题可能与你的" apache2.conf"中的某种配置有关。

在什么操作系统上运行 apache?

原作者:
0 0

在 Apache 2.4中,旧的访问授权语法已经过时,并被一个使用了需要的新系统取代。

你需要的内容如下所示:

<Directory"/labs/Projects/Nebula/">
 Options All
 AllowOverride All
 <RequireAny>
 Require local
 Require ip 192.168.1
 </RequireAny>
</Directory>

这将允许连接来自或从本地主机从ip地址从" 192.168.1"开始。

如果你不想立即更新配置,也有一个新的模块可以使 Apache 2.4识别旧语法:

sudo a2enmod access_compat
原作者:
0 0

如果你正在使用

Allow from All

在 httpd.conf 中,确保

index.php

在 httpd.conf 中的下面一行中

DirectoryIndex index.html index.php
原作者:
...