Почему мой Apache не работает после обновления до Ubuntu 14.04?

[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.

36
задан 21 April 2014 в 16:29

8 ответов

У меня была эта проблема: причина находится в файле

/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
0
ответ дан 21 April 2014 в 16:29

У меня была эта проблема даже при том, что апач работал на меня. Я просто хотел сделать быстрое

$ /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").

0
ответ дан 21 April 2014 в 16:29

Признаки и решение

Во многих 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 удостоверьтесь, что переопределили директиву соответственно.

0
ответ дан 21 April 2014 в 16:29

Пристально смотря на Вашу проблему, Вы просто работаете apache2. Для запуска апача в Ubuntu выполните следующую команду:

sudo apache2ctl start
<час>

конфигурация Apache разделяется на несколько файлов, один из тех файлов переменные среды. Когда Вы работаете всего apache2, эти переменные не установлены.

apache2ctl сценарий загрузит переменные (и сделает некоторый другой материал также при необходимости) перед стартовым апачем с apache2 -k start.

0
ответ дан 21 April 2014 в 16:29

Отредактируйте конфигурацию: sudo leafpad /etc/apache2/apache2.conf:

# Include the virtual host configurations:

#before upgrade = 
IncludeOptional sites-enabled/*
#after upgrade = 
/IncludeOptional sites-enabled/*.conf

или удаляют файл.

0
ответ дан 21 April 2014 в 16:29

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/* 
0
ответ дан 21 April 2014 в 16:29

На самом деле docroot действительно изменяется между точным и испытанным от/var/www до/var/www/html. Это плохо, что сценарий-обновления-версии не регрессирует docroot назад.

А Любой допустим, но HTML является более стандартным. CentOS влияет в этом отношении. "Это работает" страница, более зрело теперь также.

B) Вы не должны использовать/var/www/html, но если Вы делаете...

  • необходимо переместить содержание или исказить его (не рекомендуемый).
  • необходимо обновить где угодно старое местоположение, ссылается.
  • особенно резервные/восстановления/удовлетворение требованиям заказчика сценарии.

C) И это может быть легче создать с нуля и мигрировать.

D) Этот признак произойдет если Вы "sudo apache2-k, корректный" из поля на Надежном человеке, обновлении или не из-за envvars, не находящегося в объеме?. Использование "sudo apache2ctl запускается/останавливает/перезапускает" вместо этого.

0
ответ дан 21 April 2014 в 16:29

В моем случае:

  • html подпапка в /var/www/ уже существовал, но тем не менее я получал ошибку: AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
  • Я уже решил разместить свои веб-сайты в моем пользовательском корне, например. /home/{user}/sites/ вместо значения по умолчанию /var/www/html
  • Я использую Apache 2.4.7 (Можно проверить версию с apache2 -v)

Как я решил проблему на пяти легких шагах:

  1. В /etc/apache2/apache2.conf Я добавил следующее после строки 169:

    <Directory /home/{user}/sites/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    
  2. Я удостоверился своя Виртуальная названная конфигурация Хоста 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>
    
  3. Я перезагрузил свой сайт (sudo a2dissite website && sudo a2ensite website) и мой сервер и начальная ошибка закончились. WOOHOO! Но появился новый: "AH00035: доступ к / отклоненный (путь файловой системы '/home/{пользователь} / сайты), потому что поисковые полномочия отсутствуют на компоненте пути". Это я решил на шаге 4.

  4. Новая проблема происходила из-за полномочий, таким образом, я просто установил каждое продвижение каталогов до website папка к chmod 755. Каждый! home папка, {пользователь} папка, папка сайтов и даже моя папка веб-сайта

  5. После обновления моего браузера в website.dev все загрузилось прекрасный!

P.S. У меня уже была установка website.dev в моем /etc/hosts файл.

Бонусная Подсказка: Для проверки полномочий конкретной папки, можно использовать команду stat -c %a /path/to/file/or/folder. Проверять полномочия каждой части использования каталога namei -m /path/to/final/folder.

0
ответ дан 21 April 2014 в 16:29

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

Похожие вопросы: