Симптомы и решение
На многих сайтах и форумах по вопросам и ответам люди путают симптомы и реальные причины. Я только что обновил сервер Ubuntu с 13.10 до 14.04.1 и столкнулся с точно такими же симптомами, описанными OP, включая:
1 - apache, очевидно, не работает. 2- переменная конфигурации apache не определена. 3 - синтаксическая ошибка, упомянутая ОП.
Проблема в том, что не все эти симптомы на самом деле имеют отношение к реальной проблеме, и они служат только отвлечением тех, кто изо всех сил пытается помочь.
Различные корневые проблемы могут привести к тому, что администраторы зайдут на сайты, подобные этому, с примерно одинаковым описанием: «Я обновил ОС, и теперь apache не работает ...»
Одна конкретная причина
Имея все те же очевидные симптомы, что и ОП, меня привлек этот вопрос. К сожалению, единственный ответ, который содержал правильную подсказку о реальной основной причине моей проблемы, был понижен (-1), отправленный пользователем 1469291 с повторением 1 !! Поэтому я искал другие сайты, пока не нашел четкого объяснения проблемы (и тем самым решения).
Следующее решение может не решить реальную проблему ОП, но я уверен, что оно поможет другим, кто может быть привлечен к этому вопросу по тем же причинам, что и я.
/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 / end. в .conf. Старые ссылки в этом каталоге будут игнорироваться.
Раньше это были просто сайты с поддержкой / *. Вот почему все мои файлы конфигурации виртуального хоста, которые я просто назвал ww1.example.com, ww2.example.com и т. Д., Работали, но неожиданно и первоначально по необъяснимым причинам перестали работать после обновления.
Итак, либо измените указанную выше директиву и перезагрузите apache, либо, как я, вручную удалите все старые символические ссылки в sites-enabled /, переименуйте все файлы в 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 / где-нибудь, убедитесь, что директива переопределена соответствующим образом.