当访问我在本地开发环境中定义的站点时,我似乎无法克服 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 符号链接到主目录 - 权限错误