dodaの日記: Apache 起動不可
Apache を portupgrade でバージョンアップしたら起動しなくなって困っていた。
エラーログを見ると、
[Fri May 07 21:39:39 2010] [error] Unable to initialize TLS servername extension callback (incompatible OpenSSL version?)
なんて出ている。
SNI を使う為に ports から OpenSSL を入れているのだが、ビルド時はちゃんと ports で入れた方を使っているが、実行時はベースシステムの OpenSSL を使おうとしてエラーになっているようだ。
しかし、ldd mod_ssl.so を行っても
/usr/local/libexec/apache22/mod_ssl.so:
libssl.so.7 => /usr/local/lib/libssl.so.7 (0x800b30000)
libcrypto.so.7 => /usr/local/lib/libcrypto.so.7 (0x800c88000)
libthr.so.3 => /lib/libthr.so.3 (0x800f21000)
libc.so.7 => /lib/libc.so.7 (0x800638000)
と、ports で入れた OpenSSL を使うはず。
原因がわからなかったので、しばらくの間 SSL を無効にして使っていた。
昨日、ふと Apache の全てのモジュールに対して ldd をかけたら、mod_ldap.so 等がベースシステムの OpenSSL を使っている事に気が付いた。
どれも全て OpenLDAP の libldap/liblber にリンクしており、それらがベースシステムの OpenSSL にリンクしている為のようだった。
OpenLDAP を portupgrade で入れなおしたら無事に Apache が立ち上がるようになった。
Apache 起動不可 More ログイン