2013年6月12日水曜日

apacheでWebDAV

apacheでWebDAVを実装してみよ~。今回の目的は以下の通り。

 ・SSLで安全に!
 ・htdocs配下にない、ディレクトリを参照させる(alias、シンボリック)
 ・日本語対応してみる

1.ソースからコンパイル

今回の目的に向けて、以下のようにapache2をコンパイルから始める。
もともとのインストールはここを参照。

# cd /usr/local/src/httpd-2.4.4
# ./configure --enable-ssl=shared --enable-dav=shared

オプションの意味としては、以下の通り

--enable-ssl=shared
 ApacheでSSLを処理するためのモジュール(mod-ssl)をDSOで利用可能(=shared)にする。

--enable-dav=shared
 WebDAVのためのフロントエンドモジュールmod-davと、バックエンドモジュールmod-dav-fsがインストールされ、DSOで
 利用可能にする。mod-dav-fsはファイルシステムをWebDAVで使うためのモジュール。

 ※mod-davとmod-dav-fsを分離する目的がよくわからなかったけど、バックエンドモジュールにはmod-dav-svnという
  バージョン管理モジュールを選択することもできるらしい。これは当然ファイルシステムではなく、BerkleyDBを使って
  バージョン管理ができるらしいです。今度やってみよう!
  
ということでコンパイルしてみたら、、

checking for OpenSSL version >= 0.9.7... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

ということで、OpenSSLのバージョンが古いらしい。

# yum info openssl

Name        : openssl
Arch        : x86_64
Version     : 1.0.0
Release     : 27.el6
・・・

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.0
Release     : 27.el6_4.2
・・・

Name        : openssl
Arch        : x86_64
Version     : 1.0.0
Release     : 27.el6_4.2
・・・

となって、1.0.0が使えるようなので、これにUPGRADEしてみる。

# yum upgrade  openssl -y

・・・

Updated:
  openssl.x86_64 0:1.0.0-27.el6_4.2

Complete!

で、再度apacheのコンパイル。

checking for OpenSSL version >= 0.9.7... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

あれ??変わってない。ということでopensslの参照先を指定しないといけないらしい。
でも、--with-sslで指定するにしても、どのディレクトリを指定すればよいのだろうか。。
ということで、opensslをソースからインストールしてみることにした(ここ)。

( ※デフォルトのopensslインストールではだめなのだろうか??どこかで検証したいところ)

で再度チャレンジ。

# ./configure --enable-ssl=shared --enable-dav=shared --with-ssl=/opt/openssl-1.0.1e

おおっ、、無事完了。ということで、make & make install。さぁ最後に確認してみよう。

# /usr/local/apache2/bin/httpd -l

Compiled in modules:

  core.c
  mod_so.c
  http_core.c
  event.c

あれっ??mod_dav.cとかmod_ssl.cとか出てこないし、、まだかかりそうです。。(次回に続く)




0 件のコメント:

コメントを投稿