尝试通过浏览器访问localhost时出现此错误 .
AH01630: client denied by server configuration
我使用以下方法检查了我的站点文件
sudo chmod 777 -R *
这是我的配置文件:
<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>
18 回答
对于Wamp 3(Apache 2.4),除了按照其他答案中的描述将服务器置于联机状态之外,还可以在虚拟主机文件中使用
conf/extra/httpd-vhosts.conf
你可能需要更换
同
如果你在
httpd.conf
,这是适用的如果您使用的是Apache 2.4
您必须检查允许和拒绝规则
看看http://httpd.apache.org/docs/2.4/upgrading.html#access
新指令是Require:
2.2配置:
2.4配置:
另外不要忘记在这些更改后重新启动Apache服务器(
# service httpd restart
)对于所有目录,写入
Require all granted
而不是Allow from all
Update
如果以上不起作用,那么也删除以下提到的行:
仔细检查DocumentRoot路径是否正确 . 这可能会导致此错误 .
我做了一些ravisorg向OSX 10.10 Yosemite建议将Apache升级到版本2.4的更改 . 以下是添加到http.conf的更改 .
这让我绝对坚持了一天半,但如果所有其他解决方案都尝试失败,我找到了解决办法 .
这适用于macOS .
转到活动监视器(聚光灯搜索:活动)
在活动监视器中搜索作为Apache服务的httpd
选择属于root的那个,然后单击左上角的X将其关闭 .
那时我立即停止了403错误,一切都按预期开始工作 . 奇怪的是我甚至没有重启apache它只是工作,我想当我去我的本地主机时它重新启动,老实说我不知道但我想问题是Apache在使用apachectl restart时实际上没有重启,或者停止或开始 . 希望这有助于某人 .
问题出在VirtualHost但 probablely is not
Confirm 你的 config 是正确的,这里是正确的样本
如果您拖尾错误日志并重新加载页面,您应该会看到有关确切问题的更多信息 .
grab 环境变量,以便$ 实际工作......
然后尾巴观看......
花了几个小时后,我解决了我的自我 .
我在vagrant vm中通过coookbook安装了Apache / 2.4.7(Ubuntu) .
/etc/apache2/apache2.conf文件默认没有
<VirtualHost *:80>
元素 .为了完成它,我做了两处修改
添加
<VirtualHost *:80>
补充道
选项索引FollowSymLinks
AllowOverride all
允许所有人
然后我终于启动了vm ..
有谁想过wamp服务器默认不包含
httpd-vhosts.conf
文件 . 我的方法是删除下面的注释在
httpd.conf
文件中 . 就这些 .这让我发疯了 . 最后弄清楚问题是什么:我使用错误日志的直接路径,他们错了 .
为什么Apache会给出一个模糊(错误)的错误消息?而是使用正确有用的错误消息,如:ErrorLog指令路径“/wrong/path/and/filename.log”无效 .
无论如何,要修复以确保您的错误日志指令看起来像这样:
如果您有https主机,那么不要忘记为ssl配置进行
Require all granted
更改 .此外,有时检查权限作为apache用户是有用的:
就我而言,
我正在使用macOS Mojave(Apache / 2.4.34) . 在/etc/apache2/extra/httpd-vhosts.conf文件中的虚拟主机设置中存在问题 . 添加所需的目录标记后,我的问题就消失了 .
要求全部授予
希望完整的虚拟主机设置结构可以为您节省成本 .
所有你要做的就是用你的确切的ProjectFolderName替换MainProjectFolderName .
除了缺少其他答案中提到的
Order
和Allow
指令之外,请注意DirectoryMatch
指令的非匹配正则表达式也可能导致此错误 .如果请求的路径是
/home/user-foo1bar/www/myproject/
,则下面的匹配器将不匹配因此,即使有效的访问配置也可能导致此错误 .
一个模糊的(刚刚处理它),但可能的原因是一个内部mod_rewrite规则,在主配置文件(不是.htaccess)中写入存在于服务器文件系统根目录的路径 . 假设您的站点中有一个
/media
目录,并且您重写了以下内容:如果服务器的根目录中有
/media
目录,则会尝试重写(导致访问被拒绝错误),而不是一个在您的站点目录中,因为文件系统根目录首先由mod_rewrite检查,因为路径中的第一个目录存在于您的站点目录之前 .问题可能是该指令不在<Directory>下
https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html#requiredirectives
该指令可以在<Directory>,<Files>或<Location>部分中引用,也可以在.htaccess文件中引用,以控制对服务器特定部分的访问 . 可以根据客户端主机名或IP地址控制访问 .
我得到了另一个可能对某人有用的人 . 从PHP 5.6 => 7.0升级后收到相同的错误消息 . 我们更改了PHP上传设置,忘记了一旦复制就更改了 . 即使我当时没有上传图片,Silverstripe(我们的CMS)拒绝保存并抛出该错误 . 增加了图像上传大小,它可以直接使用 .
使用Ubuntu时,请检查CGI模块是否已启用 . 如果不: