当没有配置虚拟主机时,apache webserver 如何“决定”提供什么内容?

当没有配置虚拟主机时,apache webserver 如何“决定”提供什么内容?

我正在尝试调试 Ubuntu 14.04 服务器上安装的 apache 2.4 上的一些奇怪行为。
我注意到,如果我通过从配置文件中注释掉它们的IncludeOptional行来删除所有虚拟主机和其他配置apache.conf,例如

File: /etc/apache2/apache2.conf

# DISABLE generic snippets of statements
# IncludeOptional conf-enabled/*.conf

# DISABLE the virtual host configurations:
# IncludeOptional sites-enabled/*.conf

(然后重启apache)

如果我浏览到服务器,apache 仍然会提供来自的内容/var/www

我的问题是,如何或在何处“告知” apache 将其用作文档根目录?

  • DocumentRoot它是编译到 apache 本身中的一些最终的回退吗?
  • 我查看了 apache 配置文件,但找不到任何DocumentRoot = /var/www指令?

答案1

是的,如果您的配置中没有DocumentRoot指令,则使用编译后的默认值。在 Ubuntu 14.10 之前的版本中,它是/var/www,在 14.10 中,它已更改为/var/www/html

答案2

有一个最终的撤退DocumentRoot地点。Apache 文档

Default:    DocumentRoot /usr/local/apache/htdocs

但是,对于打包,默认设置为/var/www(因为包不应该驻留在或使用/usr/local)。执行此操作的特定补丁是fhs_compliance.patch

--- a/include/httpd.h
+++ b/include/httpd.h
@@ -109,7 +109,7 @@
 #define DOCUMENT_LOCATION  HTTPD_ROOT "/docs"
 #else
 /* Set default for non OS/2 file system */
-#define DOCUMENT_LOCATION  HTTPD_ROOT "/htdocs"
+#define DOCUMENT_LOCATION  "/var/www"
 #endif
 #endif /* DOCUMENT_LOCATION */

apt-get source apache2; cd apache2*; less debian/patches/fhs_compliance.patch您可以通过下载 ( ) 或在线访问来检查完整补丁Debian 的打包 Git 存储库

相关内容