アプリ版:「スタンプのみでお礼する」機能のリリースについて

apacheについて質問です。分かる方、どうぞご教授下さい。

httpd.confにmod_perlの設定を記述しない場合、通常どおりapacheが起動するのですが、以下のようにmod_perlの設定を追記するとapacheがエラーで起動しません。

【mod_perlの設定】
PerlModule ModPerl::Registry
PerlRequire /usr/lib/perl5/site_perl/5.8.8/startup.pl

<Location /cgi-bin>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlSendHeader On
Options ExecCGI
</Location>

【apacheのエラー内容】
/usr/local/apache2/bin/httpd: symbol lookup error: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Apache2/ServerUtil/ServerUtil.so: undefined symbol: ap_get_server_banner

httpd.confのmod_perlの設定については、他のサーバーでは問題なく起動していますので、mod_perlのconfigure時の共有ライブラリの設定に不備があるのではと思っているのですがどう設定すればいいのか分かりません。mod_perlのconfigure時のオプションは以下のようになっています。

【mod_perlのconfigure】
perl Makefile.PL \
> MP_USE_STATIC=1 \
> MP_AP_PREFIX=../httpd-2.0.63 \
> MP_AP_CONFIGURE="--prefix=/usr/local/apache2 --with-mpm=prefork"

以下、grep の実行結果です。

[root@colinux mod_perl-2.0.3]# grep -r ap_get_server_banner /usr/lib/*
バイナリー・ファイル/usr/lib/httpd/modules/mod_rewrite.soは一致しました
バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_connect.soは一致しました
バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_ftp.soは一致しました

どんな些細なことでも結構ですので、どうかご教授のほど宜しくお願い致します。

【環境】
fedora6
apache2.0.63
mod_perl2.0.4

A 回答 (1件)

ap_get_server_banner は apache 2.2.4 以降で定義されている関数です。


ということで、それ以前のバージョンには存在しません。

なので、apache のバージョンが 2.2.4 未満の場合はエラーとならないように (互換性を保つために) ap_get_server_banner 関数が mod_perl の中に定義されています。

すなわち、ap_get_server_banner 関数の実態は mod_perl の中 (DSO 版であれば mod_perl.so、static 版であれば httpd) にあります。

ということで、まずは nm httpd とかやってみて、ちゃんと ap_get_server_banner が定義されているかどうか確認してみると良いかと思います。

ちなみに私がやったときは DSO 版は起動まで問題なく、static 版は make の段階で転けました。

あと、mod_perl は make install の前に make test で動作確認できるのでやっていないようでしたらやってみてもよいかもしれません。
    • good
    • 0
この回答へのお礼

返事が遅くなりました。

原因はapache2をmakeしていなかったのが原因でした。

ありがとうございました。

お礼日時:2008/07/16 00:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!