Derzeit versuche ich, meine Vagrant-Maschine mit Puppet-Modulen auf PHP7 zu aktualisieren, und natürlich mit aktualisierten Modulen. Seit der Aktualisierung des Puppetlabs/Apache-Moduls auf Version 3.0.0 schlägt die Installation jedoch fehl libapache2-mod-php7.0
.
Ich konnte die Ursache bereits ermitteln. Aus irgendeinem Grund setzt das Puppetlabs/Apache-Modul zwei MPMs, wenn die ::apache::mod::php
Klasse aufgerufen wird. Es setzt sowohl das Ereignis als auch das Prefork-MPM. Der Grund, warum Prefork gesetzt wird, ist, dass das Puppet-Modul erfordert, dass Sie entweder das Prefork- oder das Itk-Modul laden, wenn Sie PHP verwenden. Wenn ich entweder Prefork oder Itk definiere, lädt es aus irgendeinem Grund auch das Ereignis-MPM. So rufe ich das Apache-Modul derzeit auf:
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': }
Wenn ich mpm_module auf etwas anderes als itk oder prefork setze, wird der Fehler itk oder prefork ist obligatorisch generiert. Wenn ich ::apache::mod::prefork
die Einstellung mpm_module entferne und auf prefork setze, passiert dasselbe wie bei der aktuellen Konfiguration.
Wenn ich mich nach fehlgeschlagener Installation per SSH bei der Vagrant-Maschine anmelde und die Zeile LoadModule aus der /etc/apache2/modules-enabled/event.load
Datei entferne, funktioniert alles wie erwartet. Ich habe keine Ahnung, warum das Ereignis-MPM geladen wird, da die doppelte MPM-Ladung den Konflikt verursacht. Apache weiß nicht, welches MPM geladen werden soll, und schlägt daher bei der Installation der libapache2-mod-php7.0-Installation fehl.
Es gibt auch keine Ausgabe von Puppet, die zeigt, dass die Dateien event.conf/event.load erstellt werden, nur die Prefork-Dateien.
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
Ich führe es auf Debian Stretch x64 mit der neuesten stabilen Version von Vagrant, VirtualBox, Puppet und Apache/2.4.25 aus.
Antwort1
Für alle, die es interessiert: Ich habe einen Fehlerbericht in Puppetlabs Jira erstellt und wie erwartet stellte sich heraus, dass es sich um einen echten Fehler handelte. Er sollte in einer nächsten Version behoben sein, wenn der Pull Request durchgeht:https://tickets.puppetlabs.com/browse/MODULES-6677
Ich denke, das löst das Problem.