ふたつの川うるおう日記
2005-12-07 (Wed)
_ [Server] Apache 2.2 -lssl -lcrypto
古いSSLライブラリにリンクされる件、解決しました。というか、A氏のお力、ありがとうm(_ _)m。
問題の箇所は、configureして生成されるhttpd-2.2.0/build/config_vars.mk内のEXTRA_LIBSとSSL_LIBSでした。Apache 2.0.xでは、SSL_LIBSというのが無くて、EXTRA_LIBSに-lssl -lcryptoも入っていたのが、2.2.xからSSL_LIBSに-lssl -lcryptoが入るようになっていて、このSSL_LIBSはmod_sslをコンパイルする時のみに使われるものの、それ以外の本体やモジュールでは参照されていませんでした。
なわけで、とりあえずの解決策としては、configureした後に下記のように修正してコンパイルすればOK。
vi build/config_vars.mk
EXTRA_LIBS = -lm ↓ EXTRA_LIBS = -lm $(SSL_LIBS)
- 結果
Server: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.8a DAV/2 PHP/5.1.1 SVN/1.2.3
ldd mod_ssl.soするとちゃんと新しいSSLモジュールをリンクしているのに、本体がリンクしている古いバージョンを返していたので、このServerTokenは、モジュールが情報取ってそれを本体に渡してるのではなくて、少なくともmod_sslの場合は、本体のリンクしているライブラリバージョンを返すんですね。
というわけで、trunkに修正が反映されていないようなので、Bugzillaに登録しようと思います。
ただ、今Apacheのサーバ落ちてるみたいだけどね・・・。
[追記]: 投げました。ASF Bugzilla Bug 37823: The openssl library linked is different between httpd and mod_ssl


