Apache2:“AH01630:客户端被服务器configuration拒绝”

尝试通过浏览器访问本地主机时出现此错误。

AH01630: client denied by server configuration 

我检查我的网站文件夹权限使用:

 sudo chmod 777 -R * 

这是我的configuration文件:

 <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> 

    12 Solutions collect form web for “Apache2:“AH01630:客户端被服务器configuration拒绝””

    如果你使用的是Apache 2.4

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

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

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

    在2.4中,这种访问控制与其他授权检查相同,使用新模块mod_authz_host。

    新的指令是要求 :

    2.2configuration:

     Order allow,deny Allow from all 

    2.4configuration:

     Require all granted 

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

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

    更新

    如果上述不起作用,那么也删除下面提到的这一行:

    订单允许,否认

    仔细检查DocumentRootpath是否正确。 这可能会导致此错误。

    我做了与rackerg向OSX 10.10 Yosemitebuild议的将Apache升级到2.4的相同更改。 以下是添加到http.conf的更改。

     <Directory /> AllowOverride none Require all denied </Directory> <Directory /Volumes/Data/Data/USER/Sites/> AllowOverride none Require all granted </Directory> 

    这让我绝对坚持了一天半,但如果所有其他解决scheme都尝试失败,我find了一个解决scheme。

    • 转到活动监视器(Spotlightsearch:活动)
    • 在活动监视器中searchhttpd这是Apache服务
    • select属于根目录的那个,点击左上方的Xclosures它。

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

    如果你拖拽错误日志并重新加载页面,你应该看到更多关于确切问题的信息。

    抓取环境variables,以便$ {APACHE_LOG_DIR}实际上工作…

     source /etc/apache2/envvars 

    然后尾巴看着…

     tail -f ${APACHE_LOG_DIR}/error.log 

    花了几个小时后,我解决了自己的问题。

    我通过coookbook在vagrant vm中安装了Apache / 2.4.7(Ubuntu)。

    /etc/apache2/apache2.conf文件默认没有<VirtualHost *:80>元素。

    我做了两个更改来完成

    1. 添加了<VirtualHost *:80>
    2. 添加
      选项索引FollowSymLinks
      AllowOverride全部
      全部允许

    那么最后我只是启动虚拟机..

    有没有人想过这个wamp服务器默认不包含httpd-vhosts.conf文件。 我的方法是删除下面的注释

      conf # Virtual hosts Include conf/extra/httpd-vhosts.conf 

    httpd.conf文件中。 就这些。

    这让我疯狂。 最后想出了什么问题是:我使用直接path的错误日志,他们是错的。

    为什么Apache给出一个模糊的错误信息? 而是使用正确和有用的错误消息,如:ErrorLog指令的path“/wrong/path/and/filename.log”是无效的。

    无论如何,要确保你的错误日志指令看起来像这样:

     ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined 

    如果你有https主机,那么不要忘记对ssl config进行必要的更改。

    另外,有时候以apache用户的身份来检查权限是很有用的:

     # ps -eFH | grep http # get the username used by httpd ... apache 18837 2692 0 119996 9328 9 10:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND # su -s/bin/bash apache # switch to that user bash-4.2$ whoami apache bash-4.2$ cd /home bash-4.2$ ls bash-4.2$ cd mysite.com bash-4.2$ ls bash-4.2$ cat file-which-does-not-work.txt 

    对于Wamp 3(Apache 2.4),除了按照其他答案中的描述将服务器联机外,在虚拟主机文件conf/extra/httpd-vhosts.conf
    你可能需要更换

     Require local 

     Require all granted 

    这是适用的,如果你在httpd.conf

     Include conf/extra/httpd-vhosts.conf 

    问题是在VirtualHost,但可能不是

    要求所有授予

    确认你的configuration是正确的,这里是正确的示例 在这里输入图像描述