CentOS 7.1 – Apache 2.4.6
默认configuration包含以下内容:
.... <Directory /> AllowOverride none Require all denied </Directory> ... DocumentRoot "/var/www/html"
如果我更改DocumentRoot,我会得到:
403 – 您无权访问/在此服务器上。
经过几个小时的四重检查目录configuration和文件系统权限,我试图删除上面的块…成功! 一切正常。
我所做的全部更改将使用以下内容replace默认部分:
DocumentRoot "/srv/http" <Directory "/srv/http"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny allow from all </Directory>
Apache 2.2使用以下configuration来声明访问某些目录:
Order deny,allow Deny from all
Apache 2.4使用以下内容:
Require all denied
更多信息在这里 。 奇怪的是,你设法使用第一种configuration风格,因为这只适用于Apache 2.2。 尝试运行这个:
httpd -v
它会输出你正在使用的Apache版本, 也许它会帮助你清理一些东西。
似乎在DocumentRootpath的Directoryconfiguration中,访问需要按如下方式指定,以便覆盖顶层拒绝:
Require all granted
我想我有更多的阅读要做…按照Apache文档 :
由
mod_access_compat提供的“AllowDeny和“Order指令已被弃用,并将在未来的版本中消失。 你应该避免使用它们,并避免过时的教程推荐使用它们。