apache虚拟主机和文档根


apache virtual hosts and document root

这听起来可能是一个愚蠢的问题,但它已经困扰了我一段时间,我找不到任何答案。我即将在apache+linux生产服务器上部署一个php+mysql web应用程序。我设置了一个虚拟主机,它指向我的主项目目录的公用文件夹。我的问题是:

-如果我将项目目录的公用文件夹设置为默认的apache web根目录,而不是设置一个单独的虚拟主机,会有什么不同吗?

-我应该限制对默认web根目录的访问,还是因为我没有使用它而禁用它。如果是,如何?

提前谢谢。

希望你已经解决了你的问题。顺便说一句,我在这里发布答案,以帮助服务器管理员将来。所以在未来,任何服务器管理员都有这种类型的问题,他们可以参考这个答案。

在这种情况下,无需设置默认的web根目录。根据Apache文档,如果在后续条目中未找到任何匹配项,则将获取第一个虚拟主机条目。请参阅以下虚拟主机条目

NameVirtualHost *
<VirtualHost *>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /home/example/public_html
    ErrorLog /home/example/error.log
    CustomLog /home/example/access.log combined
</VirtualHost>
<VirtualHost *>
    ServerName www.example2.com
    ServerAlias example2.com
    DocumentRoot /home/example2/public_html
    ErrorLog /home/example2/error.log
    CustomLog /home/example2/access.log combined
</VirtualHost>

没有必要禁用默认的web根目录。如果找不到匹配项,Apache将自动将第一个条目作为默认web根进行pic。