„Nie załadowano MPM”, ale nawet nie używam mpm

10

Uruchamianie Apache2 na Ubuntu Precise64 w Vagrant. Kiedy próbuję go uruchomić, mówi:

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.

Ale chodzi o to, że mój /etc/apache2/apache2.confplik nigdzie nie wymaga MPM! Wkleiłbym go tutaj, ale byłby to ogromny post ...

Próbowałem sprawdzić dziennik błędów, ale nigdzie nie mogę go znaleźć. Wsparcie?

Edycja: apache2 -l daje to:

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                    

Wygląda na to, że nie zainstalowano żadnego mpm, prawda? Jeśli nie zainstalowałem MPM i nie wspomniano o nim w moim pliku konfiguracyjnym, dlaczego nadal widzę ten błąd?

ezuk
źródło
1
Jaka jest wydajność dpkg -l 'apache2-mpm *'
sciurus
dla mnie wystarczyło wyczyścić, ponownie zainstalować i skopiować stare pliki konfiguracyjne, niezależnie od tego, kto był winowajcą;)
Melissa Loos

Odpowiedzi:

10

apache2 -t -D DUMP_MODULES (lub -M) powinien dać ci listę modułów. Powinieneś zobaczyć worker.c lub prefork.c lub event.c. Użyj tego, aby określić, którego MPM używasz.

Sprawdź swoje pliki konfiguracyjne, jeśli coś takiego (jeśli używasz prefork MPM).

Oto przykład:

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

Dodaj blok taki jak ten do pliku konfiguracyjnego i powinien on działać. Sprawdź, czy apache2-mpm-prefork (lub proces roboczy lub zdarzenie) jest poprawnie zainstalowany.

Przeczytaj tę dokumentację, aby pomóc Ci wybrać (jest to obowiązkowe) odpowiedni MPM dla twojego zastosowania: http://httpd.apache.org/docs/2.2/mpm.html

Vinz
źródło
Zaktualizowałem oryginalne pytanie o dane wyjściowe polecenia ... Wygląda na to, że w ogóle nie ma modelu mpm, więc nie rozumiem, dlaczego widzę błąd. Dowolny pomysł?
ezuk
1
Musisz wybrać moduł MPM, jest to obowiązkowe.
Vinz
Cześć @Vinz. Mam ten sam problem (Ubuntu 13.10, Apache 2.4.6) i wypróbowałem twoje rozwiązanie. Brakowało mi tego bloku w pliku konfiguracyjnym, ale dodanie go nie rozwiązało problemu. Jakieś inne pomysły? Trochę się tu zgubiłem.
Itai Bar-Haim
@ ItaiBar-Haim: Jaki jest komunikat o błędzie po dodaniu tego bloku?
Vinz
@ Vinz to ten sam błąd. Dowiedziałem się jednak, że kiedy używam domyślnej konfiguracji Apache i nie próbuję jej w żaden sposób zastępować, wydaje się, że wszystko działa.
Itai Bar-Haim
10

Miałem ten sam problem. Przypadkowo nadpisałem /etc/apache2/apache2.conf. Aby to naprawić, musiałem uruchomić, sudo apt-get purge apache2aby całkowicie usunąć apache, a następnie uruchomić, sudo apt-get install apache2aby odzyskać oryginalny apache2.confplik.

UWAGA : /etc/apache2/sites-availablePrzed czyszczeniem wykonaj kopię zapasową wszystkich niestandardowych plików .

JudRoman
źródło
Miałem podobny problem z uruchomieniem Vagrant i okazuje się, że przypadkowo usunąłem całą zawartość apache2.conf. Jednak nieco łatwiej jest przywrócić vagrant destroy && vagrant up.
forsvunnet