はじめに
FreeBSDでpkg upgrage
を実行した後に、Apacheが以下のエラーを出力するようになって起動しなくなりました。
# apachectl configtest
Performing sanity check on apache24 configuration:
AH00534: httpd: Configuration error: No MPM loaded.
# service apache24 restart
Performing sanity check on apache24 configuration:
AH00534: httpd: Configuration error: No MPM loaded.
MPMモジュールの読み込み
出力されるエラーメッセージから調査すると、どうもMPMのモジュールが読み込まれていないようでした。
調べてみると、httpd.conf
にMPMのモジュールがLoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
が読み込まれておらず(元のファイルがどうだったか覚えてませんが)、これが原因のようでした。
MPMのモジュール読み込みの指定は以下3つのうちいずれかです。
LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
# cd /usr/local/etc/apache24
# grep mpm ./*
./httpd.conf:#Include etc/apache24/extra/httpd-mpm.conf
./httpd.conf.org:#Include etc/apache24/extra/httpd-mpm.conf
./httpd.conf.sample:#LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
./httpd.conf.sample:LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
./httpd.conf.sample:#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
./httpd.conf.sample:
./httpd.conf.sample:
./httpd.conf.sample:#Include etc/apache24/extra/httpd-mpm.conf
./mime.types:application/vnd.blueice.multipass mpm
./mime.types.sample:application/vnd.blueice.multipass mpm
FreeBSDのpkg
コマンドでApache24をインストールした場合、デフォルトではprefork
のオプションが有効になっているので、LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
をコンフィグファイル内に記述し、起動するとうまくいきました。
# apachectl configtest
Performing sanity check on apache24 configuration:
Syntax OK
# service apache24 restart
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
おわりに
pkg upgrade
実行前はバックアップを忘れずに。