Ubuntu Apache2 DefaultRuntimeDir повинен бути дійсним каталогом, абсолютним або відносним до ServerRoot


17

У мене є веб-сервер під управлінням 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оголошено як.

Може хтось допоможе мені?

Відповіді:


17

Команда

source /etc/apache2/envvars

розібрав мою проблему (спробувавши ВСІ інші).

Щоб перевірити, чи все добре, чи не використовуйте команду

apache2 -S

Я виявив, що це швидше, ніж використання моїх записів DNS.


1
Я використав source /etc/apache2/envvarsале але після цього мій домашній каталог змінився з ~на, homeі коли я написав CD це показало -bash: cd: HOME not set. Коли я ввійшов до envvars, одним із перших рядків є # this won't be correct after changing uidі unset HOME. Будь-яка ідея, як це виправити?
Михайло Міньков

7

У "man apache2" відсутнє оновлення, принаймні для опції -V;

Сьогодні замість цього слід використовувати або "apachectl", або "apache2ctl"

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

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


Зовсім не ясно, як це відповідає на питання.
Ренді Крагун

6

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

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

Виправлення для мене було: mkdir /var/run/apache2


7
навіть якщо ви створили папку або якщо папка вже представлена ​​(як у моїй ситуації), вам доведеться виконати наступну команду. source /etc/apache2/envvars
Пешмерге

Вам потрібно запустити команду envvares лише в тому випадку, якщо ви запускаєте Apache без стартового сценарію, якщо ви використовуєте init.d / system.d, файл буде розміщений автоматично.
Нійол

@Peshmerge Дякую! ви можете сказати мені, як зберегти його після перезавантаження? Здається, що при перезавантаженні нам доведеться щоразу виконувати цю команду вручну
Т.Тодуа,

1

у моєму випадку це стосувалось рядка «Потрібно відхилити все» у файлі apache2.conf, який (знову ж таки) у моєму випадку було введено як «Вимагати відхилено»


0

Повторне включення php5.6модуля apache допомагає вирішити цю проблему.

Натисніть Ctrl+ Alt+ Tі введіть ці:

sudo a2dismod php5.6
sudo a2enmod php5.6

Потім перезапустіть службу apache2:

sudo service apache2 restart
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.