403 来自“动态配置的大规模虚拟主机”

403 来自“动态配置的大规模虚拟主机”

我看过 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 文件的需要。

  1. 为了确保 Apache 能够获取该文件,我在顶部添加了一些垃圾“dlkmvasp”,检查是否存在语法错误,删除垃圾,然后重新启动服务器。
  2. 我向 /etc/hosts 添加了一些域,并尝试访问 loc.example.com。
  3. “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.comDocumentRoot一个/var/www/localhost/htdocs/loc.example.com/web

检查目录中的路径/var/www/localhost/htdocs/loc.example.com/web和文件web是否具有适当的权限,以允许 Apache 访问它们。对于目录,apache 将需要r-x权限,对于文件,它需要r--

相关内容