"Kein MPM geladen", aber ich benutze nicht einmal mpm

10

Ausführen von Apache2 unter Ubuntu Precise64 in Vagrant. Wenn ich versuche, es zu starten, heißt es:

vagrant@precise64:/etc/apache2$ /etc/init.d/apache2 start
 * Starting web server apache2
 *
 * The apache2 configtest failed.
Output of config test was:
AH00534: apache2: Configuration error: No MPM loaded.
Action 'configtest' failed.
The Apache error log may have more information.

Aber die Sache ist, meine /etc/apache2/apache2.confDatei fordert nirgendwo MPM! Ich würde es hier einfügen, aber es würde für einen riesigen Beitrag sorgen ...

Ich habe versucht, das Fehlerprotokoll nachzuschlagen, kann es aber auch nirgendwo finden. Hilfe?

Bearbeiten: apache2 -l gibt dies:

vagrant@precise64:/$ apache2 -l  
Compiled in modules:             
  core.c                         
  mod_so.c                       
  mod_watchdog.c                 
  http_core.c                    
  mod_log_config.c               
  mod_logio.c                    
  mod_version.c                  
  mod_unixd.c                    
  mod_unixd.c                    

Es sieht also so aus, als wäre keine MPM installiert, oder? Warum wird dieser Fehler immer noch angezeigt, wenn in meiner Konfigurationsdatei kein MPM installiert und kein MPM angegeben ist?

ezuk
quelle
1
Was ist die Ausgabe von dpkg -l 'apache2-mpm *'
sciurus
Für mich war es ausreichend, die alten Konfigurationsdateien zu löschen, neu zu installieren und zu kopieren, unabhängig davon, was der Schuldige war;)
Melissa Loos

Antworten:

10

apache2 -t -D DUMP_MODULES (oder -M) sollte Ihnen eine Liste von Modulen geben. Sie sollten worker.c oder prefork.c oder event.c sehen. Verwenden Sie diese Option, um festzustellen, welches MPM Sie verwenden.

Suchen Sie in Ihren Konfigurationsdateien nach etwas (wenn Sie das Prefork-MPM verwenden).

Hier ist ein Beispiel:

<IfModule mpm_prefork_module>
StartServers          5
MinSpareServers       5
MaxSpareServers      10
MaxClients          150
MaxRequestsPerChild   0
</IfModule>

Fügen Sie Ihrer Konfigurationsdatei einen Block wie diesen hinzu, und es sollte funktionieren. Stellen Sie sicher, dass die Apache2-mpm-Prefork (oder der Worker oder das Ereignis) korrekt installiert ist.

Lesen Sie diese Dokumentation, um das für Ihre Verwendung geeignete MPM auszuwählen (dies ist obligatorisch): http://httpd.apache.org/docs/2.2/mpm.html

Vinz
quelle
Die ursprüngliche Frage wurde mit der Befehlsausgabe aktualisiert ... Es sieht so aus, als gäbe es überhaupt kein MPM-Modell, daher verstehe ich nicht, warum der Fehler angezeigt wird. Irgendeine Idee?
Ezuk
1
Sie müssen ein MPM-Modul auswählen, es ist obligatorisch.
Vinz
Hallo @Vinz. Ich habe tatsächlich das gleiche Problem (Ubuntu 13.10, Apache 2.4.6) und habe Ihre Lösung ausprobiert. Ich habe diesen Block in meiner Konfigurationsdatei vermisst, aber das Hinzufügen hat das Problem nicht gelöst. Irgendwelche anderen Ideen? Ich bin hier irgendwie verloren.
Itai Bar-Haim
@ ItaiBar-Haim: Was ist die Fehlermeldung nach dem Hinzufügen dieses Blocks?
Vinz
@ Vinz es war der gleiche Fehler. Ich fand jedoch heraus, dass, wenn ich die Standard-Apache-Konfiguration verwende und nicht versuche, sie in irgendeiner Weise zu überschreiben, die Dinge zu funktionieren scheinen.
Itai Bar-Haim
10

Ich hatte das gleiche Problem. Ich habe versehentlich überschrieben /etc/apache2/apache2.conf. Um dies zu korrigieren, musste ich ausführen sudo apt-get purge apache2, um Apache vollständig zu entfernen, und dann ausführen sudo apt-get install apache2, um die Originaldatei apache2.confzurückzugewinnen.

HINWEIS : Sichern Sie alle benutzerdefinierten Dateien unter, /etc/apache2/sites-availablebevor Sie sie löschen.

JudRoman
quelle
Ich hatte ein ähnliches Problem beim Ausführen von Vagrant und es stellte sich heraus, dass ich versehentlich den gesamten Inhalt in apache2.conf gelöscht hatte. Ein bisschen einfacher zurückzusetzen vagrant destroy && vagrant up.
Forsvunnet