Apache Main DocumentRoot不存在

时间:2019-06-28 19:39:25

标签: apache document-root

我正在尝试在我的Apache配置中找到对/var/www/html的引用。当我运行apache2ctl -S时,它显示为Main DocumentRoot: "/var/www/html",但是我的虚拟主机或主Apache配置文件都没有指向该目录。

我尝试使用grep -r "var/www/html" /etc/apache2/搜索所有配置文件,但未返回任何内容。

在我的<Directory>文件中,该路径没有/etc/apache2/apache2.conf条目(/var/www有一个条目,用于存储虚拟主机)。

此配置怪癖困扰着我的OCD,但我也经常在我的Apache错误日志中看到这些条目:

[Fri Jun 28 18:19:53.424619 2019] [autoindex:error] [pid 22665] 
[client 209.222.82.167:47376] AH01276: Cannot serve directory
   /var/www/html/: No matching DirectoryIndex 
   (default.php,index.php,index.html,index.htm) found, and server-generated
   directory index forbidden by Options directive

Apache如何确定主要documentroot,以及如何更改它?

编辑:

对于我的可用站点/启用站点,我有四个文件,000-default.conf000-default-le-ssl.conf000-www-default.conf000-www-default-le-ssl.conf000-default.conf是certbot设置的重定向,指向https站点,没有DocumentRoot指令。 000-www-default.conf000-default.conf相同,但对于ServerName(一个有www,另一个没有); 000-www-default-le.conf000-default-le.conf遵循相同的模式。

这是我尝试过的一些事情的输出:

3 个答案:

答案 0 :(得分:0)

在Debian / Ubuntu中,默认虚拟主机文件 /etc/apache2/sites-available/000-default.conf 具有DocumentRoot / var / www / html >。

我认为 apache2ctl -S 报告的Main DocumentRoot与默认DocumentRoot相同。默认的DocumentRoot在 /etc/apache2/apache2.conf 中定义,或者在 /etc/apache2/sites-available/000-default.conf 中定义。 How to Change Default Apache ‘DocumentRoot’ Directory in Linux中对此进行了描述。因此,要更改主DocumentRoot,您将需要编辑 /etc/apache2/sites-available/000-default.conf

答案 1 :(得分:0)

正如@ Nic3500所指出的,/var/www/html是主DocumentRoot的默认值。更改虚拟主机配置不会对此产生影响。但是,向apache.conf添加DocumentRoot指令的确会更改它,这反映在apache2ctl -S的输出中。

换句话说,我的主DocumentRoot未配置,并且使用默认值,直到我在全局配置文件中明确定义它为止。

答案 2 :(得分:0)

DocumentRoot 指令Apache的文档清楚了其默认值:

默认:DocumentRoot“ / usr / local / apache / htdocs”

Default 表示当未在任何地方指定任何人时,Apache给出的值:

如果该指令具有默认值(即,如果您从 完全配置后, Apache Web服务器的行为就像 您将其设置为特定值

是的,我知道 / usr / local / apache / htdocs 与您的值 / var / www / html 不同,但这只是一个小细节,具体取决于在建立Apache的Linux发行版上。