[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
.
У меня была эта проблема: причина находится в файле
/etc/apache2/sites-available/000-default.conf
, где корень изменился:
перед обновлением = /var/www
после обновления = /var/www/html
Так редактируют, чтобы изменить этот файл
sudo gedit /etc/apache2/sites-available/000-default.conf
И перезапустить апача
sudo service apache2 restart
У меня была эта проблема даже при том, что апач работал на меня. Я просто хотел сделать быстрое
$ /usr/sbin/apache2 -V
для нахождения значения SERVER_CONFIG_FILE
. Поскольку это не способ больше запускать apache2, это приводит к сбою с ошибками сообщения OP. Быстрое и грязное обходное решение должно просто установить envvars, которые отсутствуют сначала:
$ source /etc/apache2/envvars
$ /usr/sbin/apache2 -V
Это устанавливает переменную APACHE_LOCK_DIR, и все хорошо (-D SERVER_CONFIG_FILE="apache2.conf"
).
Во многих Q& веб-сайты или форумы, люди путают признаки и фактические причины. Я просто обновил сервер человечности от 13,10 до 14.04.1 и столкнулся с теми же самыми признаками, описанными OP, включая:
1-апачей, по-видимому, не работа. 2-апачских неопределенных переменных конфигурации. 3-синтаксическая ошибка упоминается OP.
проблема состоит в том, что не все эти признаки на самом деле релевантны фактической проблеме, и они только служат отвлечением тем, кто старается изо всех сил помогать.
Различные корневые проблемы могут заставить администраторов возникать у сайтов как этот примерно с тем же описанием: "Я обновил ОС, и теперь апач не работает..."
Наличие всех тех же самых очевидных признаков как OP, я был притянут к этому вопросу. К сожалению, единственный ответ, который содержал допустимую подсказку к реальной первопричине моей проблемы, был downvoted (-1), отправленный user1469291 с представителем 1 года!! Таким образом, я искал далее другие веб-сайты, пока я не нашел четкое объяснение проблемы (и таким образом решения).
решение, которое следует, не может решить настоящую проблему OP, но я уверен, что это поможет другим, которые могут быть притянуты к этому вопросу по тем же причинам, как я был.
/etc/apache2/apache2.conf содержит:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
, что означает, что только конфигурационные файлы сайта в/etc/apache2/sites-enabled/окончании в .conf будут загружены. Более старая символьная ссылка в том каталоге будет проигнорирована.
Это раньше было просто поддерживающее сайты /*. Вот почему все мои виртуальные конфигурационные файлы хоста, что я просто назвал ww1.example.com, ww2.example.com, и т.д., раньше работали, но внезапно и первоначально необъяснимо прекратили работать после обновления.
Так, или изменить директиву выше и перезагрузить апача, или, как я сделал, вручную удаляю все более старые символьные ссылки в поддерживающем сайты/, переименовываю все файлы в sites-available/для добавления суффикса .conf и затем повторно включил каждый сайт индивидуально.
, Кроме того, директива по умолчанию в apache.conf более строга:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all deny
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Поэтому при хостинге виртуальных сайтов в/home/user/somewhere удостоверьтесь, что переопределили директиву соответственно.
Пристально смотря на Вашу проблему, Вы просто работаете apache2
. Для запуска апача в Ubuntu выполните следующую команду:
sudo apache2ctl start
<час> конфигурация Apache разделяется на несколько файлов, один из тех файлов переменные среды. Когда Вы работаете всего apache2
, эти переменные не установлены.
apache2ctl сценарий загрузит переменные (и сделает некоторый другой материал также при необходимости) перед стартовым апачем с apache2 -k start
.
Отредактируйте конфигурацию: sudo leafpad /etc/apache2/apache2.conf
:
# Include the virtual host configurations:
#before upgrade =
IncludeOptional sites-enabled/*
#after upgrade =
/IncludeOptional sites-enabled/*.conf
или удаляют файл.
augustin's ответ работал на меня, когда все мои виртуальные хосты исчезли после обновления сервера от 12.04 LTS до 14.04 LTS. Я был бы upvote это, если у меня была репутация, чтобы сделать так.
следующая команда добавит эти .conf
суффикс ко всем символьным ссылкам в /etc/apache2/sites-enabled
, которые уже не имеют его:
sudo find /etc/apache2/sites-enabled -type l ! -name '*.conf' -exec rename 's/$/.conf/' {} \;
, Кроме того, было изменение от использования Allow from
/ Deny from
синтаксис к Require
в модуль mod_authz_host ( здесь , ссылка для 2,2 документации).
следующая команда отредактирует общее использование Order allow, deny
сопровождаемый Allow from all
, чтобы быть Require all granted
вместо этого:
perl -0777 -pi.bak -e 's/Order\s+allow\s*,\s*deny\s*\n\s*Allow\s+from\s+all/Require all granted/sg' /etc/apache2/sites-available/*
На самом деле docroot действительно изменяется между точным и испытанным от/var/www до/var/www/html. Это плохо, что сценарий-обновления-версии не регрессирует docroot назад.
А Любой допустим, но HTML является более стандартным. CentOS влияет в этом отношении. "Это работает" страница, более зрело теперь также.
B) Вы не должны использовать/var/www/html, но если Вы делаете...
C) И это может быть легче создать с нуля и мигрировать.
D) Этот признак произойдет если Вы "sudo apache2-k, корректный" из поля на Надежном человеке, обновлении или не из-за envvars, не находящегося в объеме?. Использование "sudo apache2ctl запускается/останавливает/перезапускает" вместо этого.
В моем случае:
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
Я добавил следующее после строки 169:
<Directory /home/{user}/sites/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Я удостоверился своя Виртуальная названная конфигурация Хоста website.conf
в /etc/apache2/sites-available
был скопирован со значения по умолчанию 000-default.conf
, и был похож:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName website.dev
ServerAlias www.website.dev
DocumentRoot /home/{user}/sites/website
</VirtualHost>
Я перезагрузил свой сайт (sudo a2dissite website && sudo a2ensite website
) и мой сервер и начальная ошибка закончились. WOOHOO! Но появился новый: "AH00035: доступ к / отклоненный (путь файловой системы '/home/{пользователь} / сайты), потому что поисковые полномочия отсутствуют на компоненте пути". Это я решил на шаге 4.
Новая проблема происходила из-за полномочий, таким образом, я просто установил каждое продвижение каталогов до website
папка к chmod 755
. Каждый! home
папка, {пользователь} папка, папка сайтов и даже моя папка веб-сайта
После обновления моего браузера в website.dev
все загрузилось прекрасный!
P.S. У меня уже была установка website.dev
в моем /etc/hosts
файл.
Бонусная Подсказка: Для проверки полномочий конкретной папки, можно использовать команду stat -c %a /path/to/file/or/folder
. Проверять полномочия каждой части использования каталога namei -m /path/to/final/folder
.