apache の make でエラー

openssl が有効にならないので、apache に組み込んだバージョンが悪いのかと思って、openssl のバージョンをあげてみた。
現状の openssl に上書きするのは怖いので、/usr/local/ssl というディレクトリを作って、
そこに最新の openssl をソースからビルドして、インストールした。

で、apache をビルドしてみた。

./configure \
"--prefix=/opt/local/apache2" \
"--enable-so" \
"--enable-rewrite=shared" \
"--enable-ssl=shared" \
"--with-ssl=/usr/local/ssl" \

エラーが出た。

Undefined symbols:
  "_BIO_set_callback_arg", referenced from:
      _start_connect in ab.o
  "_BIO_get_callback_arg", referenced from:
      _ssl_print_cb in ab.o
  "_SSL_CTX_set_info_callback", referenced from:
      _main in ab.o
  "_BIO_set_callback", referenced from:
      _start_connect in ab.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [ab] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

・・・なんですかこれは・・・。
とりあえず _BIO_set_callback_arg でググってみた。
Re: [openssl.org #1539] : BUG: openssl-0.9.8e build bug on Mac OSX Intel Dual Core


ふむ・・・ openssl の PROBLEMS ってファイルに対処方法書いてあるよって事か。
PROBLEMS をみたら、

The workaround may be to change the following lines in apps/Makefile and
test/Makefile:

  LIBCRYPTO=-L.. -lcrypto
  LIBSSL=-L.. -lssl

to:

  LIBCRYPTO=../libcrypto.a
  LIBSSL=../libssl.a

It's possible that something similar is needed for shared library support
as well.  That hasn't been well tested yet.

十分テストしてないけど、変えたら動くかもよって事か。
apps/Makefile を書き換えて、 openssl に shared をつけてビルドして、apache を make してみた。


結果は同じ・・ヽ(`Д´)ノ

元に戻そうかと、apache の configure で openssl のパスを削除してビルドしても、
エラーが出るようになった(;・∀・)


Zend_Http_Client で SSL なページにアクセスしたいだけなのに orz

ん〜しょうがない問題を切り分けてみるか。
目標が自前でビルドした PHP で openssl が使う事なので、

  1. デフォルトの apache + PHP で openssl が使えることを確認する
  2. デフォルトの apache + 自前でビルドした PHP で openssl が使える事を確認する

それでもダメなら OS を再インストールしてクリーンにして 環境再構築。。。


タイムマシーン使っておけばよかった。
うまい事行ったら、タイムマシーンを使うようにしよう。

  • -

2007/12/31 17:09 追記
とりあえず 1. の「デフォルトの apache + PHP で openssl が使えることを確認する」で
Zend_Http_Client で SSL なページにアクセスできることは確認できた。
ということはやっぱり原因は opnessl が自前の PHP で使用できてない事か。


いまから 2. を試してみよう。

  • -

2007/12/31 17:57 追記
ビルドでこけた・・・なんかもうグダグダになってきた。
めんどくさいから OS から再インストールするか。
部屋も掃除したし、PC も掃除すると思えば。。。 orz