Apache“客户端被服务器配置拒绝”,尽管允许访问目录(虚拟主机配置)

Rem*_*miX 46 linux ubuntu virtualhost apache-2.2

在 Ubuntu 上的 Apache 中,我设置了一个虚拟主机,但在浏览器中我不断收到“403 禁止访问”错误;日志显示“客户端被服务器配置拒绝:/home/remix/ ”。

在网上寻找解决方案时,我发现了很多关于目录访问的帖子(全部允许等),但据我所知,我已经这样做了。在httpd-vhosts.conf 中有以下代码:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/opt/lampp/htdocs/"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/home/remix/"
    ServerName testproject
    ServerAlias testproject
    <Directory "/home/remix/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我也添加了

127.0.0.1    testproject
Run Code Online (Sandbox Code Playgroud)

到 /etc/hosts 文件。

此外,/home/remix/ 文件夹包含一个 index.html 文件,并且在 httpd.conf 中启用了 vhost。

有什么我没有看到的吗?

编辑:这是 Apache error_log 条目:

[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587] 
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
Run Code Online (Sandbox Code Playgroud)

Sha*_*den 73

更改您的授权配置:

<Directory /home/remix/>
    #...
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

...到相同的 Apache 2.4 版本。

<Directory /home/remix/>
    #...
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

查看升级概述文档以获取有关您可能需要进行的其他更改的信息 - 并注意您在 Google(以及此站点)上找到的大多数配置示例和帮助都指的是 2.2。

  • 如果我有时间,我会记录一个关于此的错误,因为 httpd -t 表示使用旧语法没有问题,而 httpd -S 也没有。在我看来,配置检查器的全部意义在于它应该指出问题!...如果你有一个目录,你没有这个引用,它不会工作 - 就这么简单。...对答案竖起大拇指。 (3认同)