访问已启用的虚拟主机时出现 403 Forbidden 错误

访问已启用的虚拟主机时出现 403 Forbidden 错误

当访问我在本地开发环境中定义的站点时,我似乎无法克服 403 禁止错误。

在 /etc/apache2/sites-available/ 下我定义了一个文件 fun.local:

<VirtualHost *:80>
        ServerName fun.local
        DocumentRoot /home/noah/work/fun
        ErrorLog /var/log/apache2/fun-error.log

        <Directory /home/noah/work/fun>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

该站点的 apache 错误日志包含此错误:

[Sat Aug 21 13:34:34 2010] [crit] [client 127.0.0.1] (13)Permission denied: /home/noah/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

我正在运行 apache2 和 ubuntu 10.04。

答案1

确保检查该目录的权限。请注意,apache 以用户“www-data”的身份运行,并且需要对该目录中的文件具有读取权限才能运行。

要检查权限,请从命令行运行:

ls -al /home/noah/

请注意,Apache 通过检查 .htaccess 文件的完整路径来确定目录是否可以提供服务。这是因为 /home/noah/.htaccess 中有一条规则规定应拒绝某些内容,从而覆盖虚拟主机文件中设置的信息。

允许 www-data 用户读取目录应该会有所帮助。您可以做的另一件事是将 /home/noah/work/fun 目录符号链接到 /var/www,其中 apache 用户应该是默认所有者。

如果您需要更多详细信息或者可以从这里到达那里,请告诉我。

答案2

您可以使用 apache userdir 模块来实现这一点。
详情请参阅此帖子:Apache 符号链接到主目录 - 权限错误

相关内容