«MPM не загружен», но я даже не использую MPM

10

Запуск Apache2 на Ubuntu Precise64 в Vagrant. Когда я пытаюсь запустить его, он говорит:

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.

Но дело в том, что мой /etc/apache2/apache2.confфайл нигде не требует MPM! Я вставил бы это здесь, но это сделало бы для огромного поста ...

Я попытался найти журнал ошибок, но нигде не могу его найти. Помогите?

Изменить: apache2 -l дает это:

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                    

Похоже, что MPM не установлен, верно? Если в моем конфигурационном файле не установлено ни MPM, ни MPM, то почему я все еще вижу эту ошибку?

ezuk
источник
1
Что выводит dpkg -l 'apache2-mpm *'
sciurus
для меня было достаточно очистить, переустановить и скопировать старые файлы конфигурации, независимо от того, кто был виновником;)
Мелисса Лоос

Ответы:

10

apache2 -t -D DUMP_MODULES (или -M) должен предоставить вам список модулей. Вы должны увидеть worker.c или prefork.c или event.c. Используйте это, чтобы определить, какой MPM вы используете.

Посмотрите в своих конфигурационных файлах, есть ли что-то подобное (если вы используете prefork MPM).

Вот пример:

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

Добавьте такой блок в ваш конфигурационный файл, и он должен работать. Убедитесь, что apache2-mpm-prefork (или рабочий, или событие) правильно установлен.

Прочтите эту документацию, чтобы помочь вам выбрать (это обязательно) подходящий MPM для вашего использования: http://httpd.apache.org/docs/2.2/mpm.html

Vinz
источник
Обновил исходный вопрос с помощью команды output ... Похоже, что модели mpm вообще нет, поэтому я не понимаю, почему я вижу ошибку. Есть идеи?
Ezuk
1
Вы должны выбрать модуль MPM, это обязательно.
Винз
Привет @ Винс. У меня на самом деле та же проблема (Ubuntu 13.10, Apache 2.4.6) и попробовал ваше решение. Мне не хватало этого блока в моем конфигурационном файле, но добавление его не решило проблему. Есть еще идеи? Я как бы здесь потерялся.
Итай Бар-Хаим
@ ItaiBar-Haim: Что за сообщение об ошибке после добавления этого блока?
Винц
@ Винс это была та же ошибка. Однако я обнаружил, что когда я использую конфигурацию Apache по умолчанию и не пытаюсь ее переопределить, все работает.
Итай Бар-Хаим
10

Я была такая же проблема. Я случайно переписал /etc/apache2/apache2.conf. Чтобы исправить, мне пришлось запустить, sudo apt-get purge apache2чтобы полностью удалить apache, а затем запустить, sudo apt-get install apache2чтобы вернуть исходный apache2.confфайл.

ПРИМЕЧАНИЕ. Выполните резервное копирование любых пользовательских файлов /etc/apache2/sites-availableдо очистки.

JudRoman
источник
У меня была похожая проблема с запуском Vagrant, и оказалось, что я случайно стер все содержимое в apache2.conf. Немного легче вернуться, хотя vagrant destroy && vagrant up.
forsvunnet