www/apache22をportupgradeでアップデートしたら、こんなエラーメッセージが出て、起動しなくなりました。うひゃ。
Performing sanity check on apache22 configuration:
httpd: Syntax error on line 64 of /usr/local/etc/apache22/httpd.conf: Cannot load /usr/local/libexec/apache22/mod_authnz_ldap.so into server: Cannot open "/usr/local/libexec/apache22/mod_authnz_ldap.so"
え?と思って見てみたら、/usr/local/libexec/apache22/mod_authnz_ldap.so というファイルが本当にありません。portupgradeでビルドしたとき、なんらかの原因で、mod_authnz_ldapというモジュールがビルドされず、そして、旧バージョンがアンインストールされ、新しいバージョンがインストールされた結果、ファイルmod_authnz_ldap.soが無くなった、ということのようです。
ここで、ピンときて、/usr/ports/UPDATINGをチェック・・・これが原因ですね。
20070918:
AFFECTS: users of www/apache22
AUTHOR: clement@FreeBSD.orgBy popular request, OPTIONS support has been added. When enabled
(default), these knobs are ignored:
* WITH_<CATEGORY>_MODULES
* WITHOUT_<CATEGORY>_MODULES
* WITH_CUSTOM_<CATEGORY>
* WITH_MODULES
* WITHOUT_MODULES
* WITH_STATIC_MODULES
However, you can disable OPTIONS by defining WITHOUT_APACHE_OPTIONS.
これまで、portsでapache22をビルドするときのオプション指定は、/usr/local/etc/pkgtools.confにて、こんな風に書いてありました。
MAKE_ARGS = {
~略~
'www/apache22' => [
'WITH_LDAP=yes',
'WITH_LDAP_MODULES=yes',
~略~
],
このpkgtools.confで指定している、WITH_LDAP_MODULES=yesなどの指定が、今では、デフォルトでは無視されるようになっているらしいです。pkgtools.confに書いたものすべてが無視されているわけではなくて、/usr/ports/UPDATINGにあるように、どのモジュールを有効にするか、などが。
では、オプション指定はどうするかというと、「make config」でメニューを見ながら指定みたいです。makeするときに、WITHOUT_APACHE_OPTIONSをセットしてもいいみたいですが、たぶん、make configを使ったほうがわかりやすいと思います。
# cd /usr/ports/www/apache22/
# make config
とすると、こんな風なメニューが表示されます。
mod_authnz_ldap.soをビルドするためには、「AUTHNZ_LDAP」をオンにすればよいらしいです。
メニューの項目数がちょっと多すぎて、わかりにくい気もしますが・・・
ちなみに、このメニューでの選択結果は、/var/db/ports/以下に保存されています。
# grep LDAP /var/db/ports/apache22/options
WITH_LDAP=true
WITH_AUTHNZ_LDAP=true
☆
でも、これまで、pkgtools.confには、WITH_AUTHNZ_LDAPなんて書いてなかったのに、なぜビルドされてたんだろう。LDAPを有効にした場合、自動的にAUTHNZ_LDAPも有効になっていたのかなぁ。
0 件のコメント:
コメントを投稿