В настоящее время я пытаюсь обновить свою машину Vagrant с модулями Puppet до PHP7 и, конечно же, с обновленными модулями. Однако после обновления модуля puppetlabs / apache до версии 3.0.0 он дает сбой при попытке установить libapache2-mod-php7.0
.
Я уже смог отследить это до причины. По какой-то причине модуль puppetlabs / apache устанавливает два MPM, когда ::apache::mod::php
класс вызывается. Он устанавливает оба события как предварительный разветвитель MPM. Причина установки prefork заключается в том, что модуль Puppet требует от вас загрузки модуля prefork или itk при использовании PHP. Когда я определяю prefork или itk, по какой-то причине он также загружает событие MPM. На данный момент я называю модуль apache следующим образом:
class { '::apache':
default_vhost => false,
mpm_module => 'false',
server_signature => 'Off',
}
class { '::apache::mod::ssl': }
class { '::apache::mod::prefork': }
class { '::apache::mod::php': }
class { '::apache::mod::rewrite': }
class { '::apache::mod::headers': }
Когда я устанавливаю для mpm_module любое значение, кроме itk или prefork, он генерирует ошибку itk или prefork является обязательным. Когда я удаляю ::apache::mod::prefork
и установите для параметра mpm_module значение prefork, то же самое происходит с текущим конфигом.
Когда я подключаюсь к машине Vagrant по ssh после сбоя установки и удаляю строку LoadModule в /etc/apache2/modules-enabled/event.load
файл, все работает как положено. Я понятия не имею, почему он загружает событие MPM, поскольку двойная загрузка MPM вызывает конфликт. Apache не знает, какой MPM загружать, поэтому не удается установить libapache2-mod-php7.0.
Также нет вывода Puppet, который показывает, что файлы event.conf / event.load созданы, только файлы prefork.
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-available/prefork.load]/ensure: defined content as '{md5}01b33d643f63126888cf702689f1f66d'
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-enabled/prefork.conf]/ensure: created
Notice: /Stage[main]/Apache::Mod::Prefork/Apache::Mpm[prefork]/File[/etc/apache2/mods-enabled/prefork.load]/ensure: created
Я запускаю его на Debian Stretch x64 с последним стабильным выпуском Vagrant, VirtualBox, Puppet и Apache / 2.4.25.
Для тех, кому интересно, я открыл отчет об ошибке в Jira Puppetlabs, и, как и ожидалось, это оказалось реальной ошибкой. Это должно быть исправлено в следующем выпуске, когда выполняется запрос на перенос: https://tickets.puppetlabs.com/browse/MODULES-6677
Думаю, это решает эту проблему.