“No MPM loaded”, tapi saya bahkan tidak menggunakan mpm

10

Menjalankan Apache2 di Ubuntu Precise64 di Vagrant. Ketika saya mencoba memulainya, dikatakan:

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.

Tapi masalahnya, /etc/apache2/apache2.conffile saya tidak memanggil MPM di mana saja! Saya akan menempelkannya di sini tetapi akan membuat posting besar ...

Saya mencoba mencari log kesalahan, tetapi saya juga tidak dapat menemukannya di mana pun. Tolong?

Sunting: apache2 -l berikan ini:

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                    

Jadi sepertinya tidak ada mpm yang dipasang, kan? Jika tidak ada MPM yang diinstal dan MPM yang disebutkan dalam file konfigurasi saya, mengapa saya masih melihat kesalahan ini?

ezuk
sumber
1
Apa output dari dpkg-l 'apache2-mpm *'
sciurus
bagi saya itu sudah cukup untuk membersihkan, menginstal ulang dan menyalin file konfigurasi lama, apa pun penyebabnya;)
Melissa Loos

Jawaban:

10

apache2 -t -D DUMP_MODULES (atau -M) akan memberi Anda daftar modul. Anda harus melihat pekerja.c atau prefork.c atau event.c. Gunakan ini untuk menentukan MPM mana yang Anda gunakan.

Lihat di file konfigurasi Anda jika ada sesuatu seperti (jika Anda menggunakan prefork MPM).

Ini sebuah contoh:

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

Tambahkan blok seperti ini ke file konfigurasi Anda dan itu akan berfungsi. Pastikan apache2-mpm-prefork (atau pekerja, atau acara) diinstal dengan benar.

Baca dokumentasi ini untuk membantu Anda memilih (wajib) MPM yang sesuai untuk penggunaan Anda: http://httpd.apache.org/docs/2.2/mpm.html

Vinz
sumber
Memperbarui pertanyaan awal dengan output perintah ... Sepertinya tidak ada model mpm sama sekali, jadi saya tidak mengerti mengapa saya melihat kesalahan. Ada ide?
ezuk
1
Anda harus memilih modul MPM, itu wajib.
Vinz
Hai @Vinz. Saya sebenarnya memiliki masalah yang sama (Ubuntu 13.10, Apache 2.4.6) dan mencoba solusi Anda. Saya kehilangan blok itu di file konfigurasi saya, tetapi menambahkannya tidak menyelesaikan masalah. Ada ide lain? Saya agak tersesat di sini.
Itai Bar-Haim
@ ItaiBar-Haim: Apa pesan kesalahan setelah menambahkan blok ini?
Vinz
@Vinz itu kesalahan yang sama. Namun saya menemukan bahwa ketika saya menggunakan konfigurasi Apache default dan tidak mencoba menimpanya dengan cara apa pun tampaknya berfungsi.
Itai Bar-Haim
10

Saya memiliki masalah yang sama. Saya tidak sengaja menimpa /etc/apache2/apache2.conf. Untuk memperbaiki, saya harus menjalankan sudo apt-get purge apache2untuk menghapus apache dan kemudian menjalankan sudo apt-get install apache2untuk mendapatkan apache2.conffile asli kembali.

CATATAN : Cadangkan semua file khusus di bawah /etc/apache2/sites-availablesebelum membersihkan.

JudRoman
sumber
Saya memiliki masalah yang sama dengan menjalankan Vagrant dan ternyata saya tidak sengaja menghapus semua konten di apache2.conf. Sedikit lebih mudah untuk dikembalikan vagrant destroy && vagrant up.
forsvunnet