
У меня есть веб-сервер под управлением 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" по крайней мере для некоторых опций, как указано в
решение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».