fc2ブログ

徒然なるままに

個人の備忘録を中心としたブログです

ソースからインストールしたApacheにSSL機能を追加したくなったので、mod_sslモジュールをDSOで追加した。

かなりエラーが出て悩んだので、できればApacheのインストール時にconfigureで
$ ./configure --enable-so --enable-ssl
しておくのが一番です。

参考にしたとういか、助けてもらったのは以下のサイトです。エラーの内容とそのエラーを回避する方法について非常に詳しく書いてあるので詳しく知りたい方はこちらを読んでください。
apxsコマンドの指定の意味がつかめると思います。
http://d.hatena.ne.jp/rx7/20130206/p1

Apacheでmod_sslを有効にするためにはopensslが必要です。
$ openssl --version

version情報が確認できればインストールされています。
(Ubuntu12.04では元々インストール済みでした)
oepnsslのヘッダファイルの場所は環境によって異なりますが
おそらく/usr/include/openssl、/usr/local/include/openssl辺りにあると思います。

mod_sslモジュール本体であるmod_ssl.cは、インストール時に使用したApacheのソース/modules/sslにあります。

では、早速apxsでmod_ssl.cをコンパイルするのですが、mod_ssl.cだけをコンパイルすると後にsyntax検査で必要なファイルがないとかでエラーがでます。
sslディレクトリ内のすべての*.cファイルを指定する必要があることに注意。

また、コンパイルの際にHAVE_OPENSSLというマクロが定義されていないと、ヘッダファイルがインクルードされないので-Dオプションでマクロを定義します。

-lcrypto、-lsslはopensslのライブラリ指定です。必須です。

例によってapxsのオプションは-iがインストール、-aがhttpd.confに自動でLoadModuleの記述を追加、-cがコンパイル -Iでインクルードするヘッダファイルを指定します。

$ cd APACHE_SRC/modules/ssl
sudo /usr/local/apache/bin/apxs -i -a -c -I /usr/include/openssl -D HAVE_OPENSSL=1 -lcrypto -lssl *.c


$ apachectl -M

でSyntax OKを確認したら無事モジュールのインストールが完了しました。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://kamiyasu2.blog.fc2.com/tb.php/22-cd91585c

kamiyasu

Author:kamiyasu

QR