Ubuntu Apache2 DefaultRuntimeDir 必须是有效目录,绝对目录或相对于 ServerRoot 的目录

Ubuntu Apache2 DefaultRuntimeDir 必须是有效目录,绝对目录或相对于 ServerRoot 的目录

我有一个运行 Ubuntu 17.04 的 Web 服务器,我正尝试使用它进行设置Apache。一切运行良好,直到我决定通过 virtualHosts 在一台机器上托管两个网站。现在,apache即使启用了单个主机,它也无法启动。每次我尝试启动时Apache都会收到此错误:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

我尝试过各种方法解决此问题,但都无济于事,包括:

apt purge apache2 && rm -r /etc/apache2 

错误消息的第 80 行全部告诉我是DefaultRuntimeDir ${APACHE_RUN_DIR}

而且我从来没有看到过在哪里或APACHE_RUN_DIR声明了什么。

有人可以帮我吗?

答案1

命令

source /etc/apache2/envvars

解决了我的问题(在尝试了所有其他方法之后)。

要检查一切是否正常,请使用命令

apache2 -S

我发现这比使用我的 DNS 记录更快。

答案2

“man apache2” 中缺少更新,至少对于选项 -V 而言;

今天,应该使用“apachectl”或“apache2ctl”,而不是

“apache2” 至少有一些选项,如

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879571

答案3

Apache2 用于/etc/apache2/envvars设置环境变量。您可以使用此信息来确保指向${APACHE_RUN_DIR}的目录有效。

从 14.04 升级到 17.04 时我遇到了同样的问题。问题是:${APACHE_RUN_DIR}设置为/var/run/apache2,但 中缺少 apache2 文件夹/var/run

对我来说解决办法是:mkdir /var/run/apache2

答案4

在我的情况下,它与 apache2.conf 文件中的“Require all denied”行有关,而在我的情况下,它(再次)被输入为“Require denied”

相关内容