我看过 Apache 的文档动态配置的海量虚拟主机,我从中摘取了
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /tmp/access_log vcommon
VirtualDocumentRoot /var/www/localhost/htdocs/%0/web
VirtualScriptAlias /var/www/localhost/htdocs/%0/web
我的期望是,对于我的本地开发服务器,这将节省我为每个新域设置新的 vhost 文件的需要。
- 为了确保 Apache 能够获取该文件,我在顶部添加了一些垃圾“dlkmvasp”,检查是否存在语法错误,删除垃圾,然后重新启动服务器。
- 我向 /etc/hosts 添加了一些域,并尝试访问 loc.example.com。
- “tail -f /tmp/access_log”现在产生“loc.example.com 127.0.0.1 - - [04/Mar/2012:11:37:03 +0100]“GET / HTTP/1.1”403 265”
我该如何调试?我可以发布所有 vhost 配置,这很有帮助,只是如果没有必要的话,我不想以一大堆文字开头。
答案1
由于您得到的是403
而不是 ,因此404
看起来好像找到了它;您是否只需要类似以下的东西:
<Directory /var/www/localhost/htdocs>
Order allow,deny
Allow from all
</Directory>
?
答案2
在您的示例中将loc.example.com
有DocumentRoot
一个/var/www/localhost/htdocs/loc.example.com/web
。
检查目录中的路径/var/www/localhost/htdocs/loc.example.com/web
和文件web
是否具有适当的权限,以允许 Apache 访问它们。对于目录,apache 将需要r-x
权限,对于文件,它需要r--