Так, сегодня я обновил набор веб-серверов от 12.04.2 до 12.04.3, и угадайте то, что, ни один vhost не работал после обновления.
главные причины были:
в apache2.conf строка IncludeOptional sites-enabled/*
был заменен IncludeOptional sites-enabled/*.conf
Хорошо, никакое грандиозное предприятие. Все символьные ссылки в наших поддерживающих сайты директорах пропускали .conf расширение, таким образом, те файлы не включить в конфигурацию.
Однако что-то путь Apache обрабатывает управление доступом, измененное между версиями также. Согласно http://httpd.apache.org/docs/2.4/upgrading.html#access я должен был измениться
Order allow,deny
Allow from all
в vhost конфигурируются к
Require all granted
или включайте mod_access_compat
модуль.
Теперь, мой вопрос... Я всегда чувствовал, что выпуски LTS должны быть обновляемыми, ничего не повреждая. С этим я имею в виду способность работать sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
ничего не повреждая. Было то предположение неправильно? Если так, где и как я могу узнать заранее, что произойдет в следующий раз? То, что я имею в виду, как я узнаю, что должен буду изменить своего апача / php / безотносительно конфигурации после обновления?
Вы уверены, что Apache 2.4 был установлен из одного из канонических репозиториев Ubuntu? Используете ли вы какие-либо PPA?
Apache 2.2 до 2.4 был обновлен мной сторонним PPA для PHP 5.4. Он был изменен на PHP 5.5, и Apache 2.4 был добавлен в PPA в один момент. Новый Vagrant после разрушения сломался, когда я столкнулся с той же проблемой, что и вы, и конфигурация vhost была несовместима с Apache 2.4.
Как выглядит вывод «apt-cache policy apache2»? Я только что создал новый пустой экземпляр Vagrant и выполнил sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
. Вот мой вывод:
t# apt-cache policy apache2 apache2: Installed: (none) Candidate: 2.2.22-1ubuntu1.4 Version table: 2.2.22-1ubuntu1.4 0 500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages 2.2.22-1ubuntu1 0 500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
Я подозреваю, что вы увидите, что Apache 2.4 был сделан из стороннего репозитория, а не из канонических репозиториев на 12.04.
Я также могу подтвердить эту проблему. 27 ноября я сделал все обновления Ubuntu, используя Webmin. Vhosts сломались, но теперь их легко исправить, добавив расширение .conf Добавление
<Directory />
Options All
AllowOverride All
Require all granted
</Directory>
в мои файлы vhost помогло.
Также, в моем случае, расширение PHP uploadprogess также было сломано согласно моим отчетам о состоянии Drupal. Решение, которое в конечном итоге сработало, состояло в том, чтобы просто удалить PECL и переустановить. Обновление Apache, по-видимому, переместило файл .so в другой каталог, а при переустановке вернуло его в нужное место.
Что касается стороннего репозитория, являющегося источником 2.4, то были добавлены только 2 для Webmin. Раньше я никогда не беспокоился об обновлениях системы, но теперь думаю, что мне нужно :( Я думаю, что Ubuntu испортился.