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 が使う事なので、
それでもダメなら 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