[aman@aman-Inspiron-1440:~$ apache2
[Mon Apr 21 17:36:38.019213 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Apr 21 17:36:38.019345 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Apr 21 17:36:38.019370 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Apr 21 17:36:38.019385 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Apr 21 17:36:38.019414 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.028756 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029032 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029056 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Это содержимое /etc/apache2/apache2.conf
файла.
Ответы:
У меня была такая проблема: причина в файле
где корень изменился:
до обновления =
/var/www
после обновления =
/var/www/html
Поэтому отредактируйте, чтобы изменить этот файл
И перезапустить apache
источник
000-default.conf
файл.html
подпапка уже существует, что в моем случае фактически не имеет значения, так как все мои сайты используют VirtualHostsDocumentRoot
настройкой.У меня была эта проблема, хотя Apache работал на меня. Я просто хотел сделать быстрый
найти значение
SERVER_CONFIG_FILE
. Поскольку это не способ запустить apache2, он перестает работать с ошибками, которые публикует OP. Быстрый и грязный обходной путь - это просто установить envvars, которые отсутствуют первыми:Это устанавливает переменную APACHE_LOCK_DIR, и все хорошо (
-D SERVER_CONFIG_FILE="apache2.conf"
).источник
apache2 -S
не удалось. Все исправлено.apache2
от имени root исправил проблему.apache2ctl -V
Симптомы и решение
На многих сайтах и форумах по вопросам и ответам люди путают симптомы и реальные причины. Я только что обновил сервер Ubuntu с 13.10 до 14.04.1 и столкнулся с точно такими же симптомами, описанными OP, включая:
1 - apache, очевидно, не работает. 2- переменная конфигурации apache не определена. 3 - синтаксическая ошибка, упомянутая ОП.
Проблема в том, что не все эти симптомы на самом деле имеют отношение к реальной проблеме, и они служат только отвлечением тех, кто изо всех сил пытается помочь.
Различные корневые проблемы могут привести к тому, что администраторы зайдут на сайты, подобные этому, с примерно одинаковым описанием: «Я обновил ОС, и теперь apache не работает ...»
Одна конкретная причина
Имея все те же очевидные симптомы, что и ОП, меня привлек этот вопрос. К сожалению, единственный ответ, который содержал правильную подсказку о реальной основной причине моей проблемы, был понижен (-1), отправленный пользователем 1469291 с повторением 1 !! Поэтому я искал другие сайты, пока не нашел четкого объяснения проблемы (и тем самым решения).
Следующее решение может не решить реальную проблему ОП, но я уверен, что оно поможет другим, кто может быть привлечен к этому вопросу по тем же причинам, что и я.
/etc/apache2/apache2.conf содержит:
это означает, что будут загружены только файлы конфигурации сайта в / etc / apache2 / sites-enabled / end. в .conf. Старые ссылки в этом каталоге будут игнорироваться.
Раньше это были просто сайты с поддержкой / *. Вот почему все мои файлы конфигурации виртуального хоста, которые я просто назвал ww1.example.com, ww2.example.com и т. Д., Работали, но неожиданно и первоначально по необъяснимым причинам перестали работать после обновления.
Итак, либо измените указанную выше директиву и перезагрузите apache, либо, как я, вручную удалите все старые символические ссылки в sites-enabled /, переименуйте все файлы в sites-available /, добавив суффикс .conf, а затем снова включите каждый сайт индивидуально.
Кроме того, директива по умолчанию в apache.conf более строгая:
Поэтому, если вы размещаете свои виртуальные сайты в / home / user / где-нибудь, убедитесь, что директива переопределена соответствующим образом.
источник
Присмотревшись к вашей проблеме, вы просто бежите
apache2
. Чтобы запустить apache в Ubuntu, выполните следующую команду:Конфигурация Apache разделена на несколько файлов, один из которых - переменные среды. Когда вы работаете только
apache2
, эти переменные не установлены.Сценарий apache2ctl загрузит переменные (и, при необходимости, также выполнит некоторые другие действия) перед запуском apache
apache2 -k start
.источник
sudo apache2ctl restart
вместо этого.Отредактируйте конфигурацию
sudo leafpad /etc/apache2/apache2.conf
:или удалите файл.
источник
Ответ Августина сработал для меня, когда все мои виртуальные хосты исчезли после обновления сервера с 12.04 LTS до 14.04 LTS. Я бы проголосовал, если бы у меня была такая репутация.
Следующая команда добавит
.conf
суффикс ко всем символическим ссылкам, в/etc/apache2/sites-enabled
которых его еще нет:Кроме того, произошло изменение от использования
Allow from
/Deny from
синтаксисаRequire
в модуле mod_authz_host ( здесь ссылка на документацию 2.2).Следующая команда будет редактировать общее использование
Order allow, deny
следуетAllow from all
бытьRequire all granted
вместо того, чтобы :источник
На самом деле документальный документ действительно меняется между точным и достоверным с / var / www на / var / www / html. Плохо, что скрипт do-release-upgrade не регрессирует назад.
A) Любой из них действителен, но HTML более обычен. CentOS является влиятельным в этом отношении. Страница "это работает" теперь более зрелая.
Б) Вам не нужно использовать / var / www / html, но если вы делаете ...
C) И это может быть легче построить с нуля и мигрировать.
D) Этот признак будет возникать, если вы "sudo apache2 -k graceful" из коробки на Trusty, обновляете или нет из-за отсутствия envvars в области действия? Вместо этого используйте «sudo apache2ctl start / stop / restart».
источник
В моем случае:
html
Вложенный в/var/www/
уже существовал , но до сих пор я получаю сообщение об ошибке:AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
/home/{user}/sites/
вместо стандартного/var/www/html
apache2 -v
)Как я решил проблему в пять простых шагов:
В
/etc/apache2/apache2.conf
I добавлены следующие после строки 169:Я удостоверился, что моя конфигурация Виртуального хоста, названная
website.conf
в,/etc/apache2/sites-available
была скопирована из значения по умолчанию000-default.conf
и выглядела так:Я перезагрузил свой сайт (
sudo a2dissite website && sudo a2ensite website
) и мой сервер, и первоначальная ошибка исчезла. WooHoo! Но появился новый: «AH00035: доступ к / запрещен (путь к файловой системе '/ home / {пользователь} / sites'), поскольку у компонента пути отсутствуют разрешения на поиск». Это я решил на шаге 4.Новая проблема была связана с разрешениями, поэтому я просто установил для каждого из каталогов, ведущих к
website
папкеchmod 755
. Каждый из!home
Папка, то {пользователь} папка, папка сайтов, и даже мой сайт папкаПосле обновления моего браузера
website.dev
все загрузилось нормально!PS У меня уже есть настройки
website.dev
в моем/etc/hosts
файле.Бонусный совет: для проверки прав доступа к определенной папке вы можете использовать команду
stat -c %a /path/to/file/or/folder
. Для проверки разрешений каждой части каталога используйтеnamei -m /path/to/final/folder
.источник