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 объявлен как.

Кто-нибудь может мне помочь?

9 ответов

Команда

source /etc/apache2/envvars

разобрался с моей проблемой (после попытки ВСЕХ других).

Чтобы проверить, все ли хорошо, используйте команду

apache2 -S

Я обнаружил, что это было быстрее, чем использовать мои записи DNS.

В "man apache2" отсутствует обновление, по крайней мере, для опции -V;

Сегодня вместо "apachectl" или "apache2ctl" следует использовать

"apache2" по крайней мере для некоторых опций, как указано в

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

Apache2 использует /etc/apache2/envvars установить переменные среды. Вы можете использовать эту информацию, чтобы убедиться, что каталог ${APACHE_RUN_DIR} указывает на действует.

У меня возникла та же проблема при обновлении с 14.04 до 17.04. Проблема была: ${APACHE_RUN_DIR} был установлен на /var/run/apache2, но папка apache2 отсутствовала в /var/run,

Исправление для меня было: mkdir /var/run/apache2

Была такая же проблема, и можно было решить ее, используя:

apache2ctl start

В моем случае это касалось строки "Требовать все отказано" в файле apache2.conf, которая (опять же) в моем случае была напечатана как "Требовать отказано"

У меня была эта проблема с Ubuntu 20.14 и Apache2 после запуска Vagrant. Мое решение состояло в том, чтобы изменить корень документа в

      /etc/apache2/sites-enabled/000-default.conf

Перед изменением -> DocumentRoot /var/www/HTML

Я удалил «HTML» (потому что я не использую каталог HTML (это только для разработки, а не для производства)

После изменения -> DocumentRoot /var/www/

Затем я перезапустил Apache

      sudo systemctl stop apache2
sudo systemctl start apache2

и все хорошо.

Reenebling php5.6 Модуль Apache помогает решить эту проблему.

Нажмите Ctrl+Alt+T и введите эти:

sudo a2dismod php5.6
sudo a2enmod php5.6

Затем перезапустите сервис apache2:

sudo service apache2 restart

У меня только что была эта ошибка, я просмотрел все предложенные идеи, но ни одна из них не сработала. Я изменил URL-адрес в sites-available .confфайл, перезапустил Apache и Boom. Он перестал работать. Решение состоит в том, чтобы войти в sites-enabledи удалите там старый файл, а затем перезапустите apache2. Надеюсь, это кому-то поможет!

Вот ответ, который я нашел;

apache2 -S ответил;

apache2: синтаксическая ошибка в строке 80 файла /etc/apache2/apache2.conf:DefaultRuntimeDir принимает один аргумент, общий каталог для файлов времени выполнения (общая память, блокировки и т. д.)

Строка 80 файла /etc/apache2/apache2.conf:DefaultRuntimeDir ${APACHE_RUN_DIR}

Строка 86 отдала файл /etc/apache2/envars, который показывает это:

экспортировать APACHE_PID_FILE=/var/run/apache2$SUFFIX/apache2.pid

экспортировать APACHE_RUN_DIR=/var/run/apache2$SUFFIX

экспортировать APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX

Указание среды установлено.

Глядя на папку /var/run/apache2, она принадлежит Root.

Выполнить: chown -R www-data:www-data /var/run/apache2

Что теперь должно позволить пользователю без полномочий root, работающему под управлением Apache2, записывать в папку. Перезапустите systemctl, перезапустите apache2.

apache2 -S Теперь работает правильно.

Другие вопросы по тегам