ソースが全然洗われない迷走ブログ

09/08/07: Apache2 ビルド物語

Category: Web関連
Posted by: okayu

「make」は時として「迷宮」になる。

またなんか言い出したよ俺…
ウチのLinuxマシンに入れているApacheのバージョンは、Xreaと環境を合わせるため、1.3系を入れてたんだけど
HTTPSの通信のテストをしてみたかったんで、ついでにApacheも2系を入れてみることに。

以下はビルド時に発生したエラーのお話。
エラーメッセージでググって来られる方もいると思うので、そのメモっす。
完全な解決には至ってないので悪しからず。



■Apacheのmake中のエラー

既に入っているOpenSSLのバージョンが古すぎるらしく、Apacheのconfigureでエラーが発生する。
まずはコレをビルドインストールして、Apacheをビルドすることに。

んで、Apacheを再びconfigure。
後にmake。

htpasswd.c error : undefined reference to 'crypt'

なんじゃい、これ。
OpenSSLのリンクエラー?

ここでOpenSSLをmakeとmake testまでしたけど、make installをしてなかったかも知れないことに気付く。うわっちゃぁー…

気を取り直してOpenSSLをmake install。
再びApacheをconfigure→make。

ab.c error : undefined reference to `BIO_set_callback'

またエラーかよ。
今度はリンク先ファイルもあるのになんで? とか思って、ライブラリの更新日時を確認。
…古い。

スタティックライブラリは新規に上書きされてるけど、共有ライブラリの方が作られてなかった。
OpenSSLのconfigureのオプションに「shared」を追加しないと、共有ライブラリが作られないらしい。

OpenSSLの ./config に「shared」を追加してビルド。
libcrypto.soが新しいバージョンを見ることを確認。

改めてApacheをビルド。
これでようやくビルド終了。

とりあえずの解決はできたけど、Apache本体のリンク先をスタティックライブラリにするほうがよかったのかな…。
そのあたりは保留のままっす、ごめんなさい


ところで、関係ないけどOpenSSLのlibcryptoって名前はCrypto++のlibcryptoppと名前がよく似てるんで、とても紛らわしい。


TrackBack


このエントリにトラックバックはありません



このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

Comments

No comments yet

Add Comment