„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?


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


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 .


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.