我得到了
Tue Apr 24 12:12:55 2012 client 127.0.0.1客户端被服务器配置拒绝: /labs/Projects/Nebula/bin/
我的目录结构看起来像(我正在使用Symfony 2,应该和其他web框架的结构类似)
我的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>
我想知道问题出在哪里,我该如何解决它?
发布于 2012-05-04 11:18:08
好的,我使用了错误的语法,我应该使用
Allow from 127.0.0.1
Allow from ::1
...
发布于 2012-12-18 06:46:57
Apache2.4.3(或更早的版本)添加了一个新的安全特性,该特性通常会导致此错误。您还会看到一条日志消息,格式为"client denied by server configuration“。该功能需要授权用户身份才能访问目录。默认情况下,它在Apache附带的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>
发布于 2015-05-20 16:36:50
在Apache2.4中,旧的访问授权语法已被弃用,并被使用Require的新系统所取代。
然后,您需要的内容如下所示:
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
<RequireAny>
Require local
Require ip 192.168.1
</RequireAny>
</Directory>
这将允许来自本地主机或来自以"192.168.1“开头的ip地址的连接。
如果你不想立即更新你的配置,还有一个新的模块可以让Apache2.4识别旧的语法:
sudo a2enmod access_compat
https://stackoverflow.com/questions/10351167
复制相似问题