Ubuntu Apache2 DefaultRuntimeDir должен быть допустимым каталогом, абсолютным или относительным к ServerRoot

Ubuntu Apache2 DefaultRuntimeDir должен быть допустимым каталогом, абсолютным или относительным к ServerRoot

У меня есть веб-сервер под управлением Ubuntu 17.04, который я пытаюсь настроить 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" или "apachectl".

"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

в моем случае это было связано со строкой «Require all denied» в файле apache2.conf, которая (опять же) в моем случае была введена просто как «Require denied».

Связанный контент