dshimizu/blog/alpha

とりとめのないITブログ

FreeBSDでpkg upgrage実行後にApache 2.4が起動しなくなった時の対処

はじめに

FreeBSDpkg 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

FreeBSDpkgコマンドで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実行前はバックアップを忘れずに。