mod_davをWebDavサーバとして使う

Posted by Yoshimasa Niwa on 02/01, 2009

ご存知の通りMobileMeiDiskはWebDavサーバとして実装されています。 WebDavサーバの実装はかなり色々種類があるのですが(RubyやPython実装、Javaによる実装など)、実用になるものはApache web serverで動くmod_davしかありません。

最近はnginxをフロントエンドやSSLプロキシーとして使って、このウェブサイトのような各々のサービスはそれぞれ別のプロセスとして動かしています。mod_davは良いのですが、Apacheの上で動くということが不満で、WebDavサービスを追加しようとしても、mod_davに関する情報は主にApacheをフロントエンドとして使う方法しかなくてイマイチでした。

そこで、簡単なスクリプトを書いて、mod_davだけを使うことにしました。

ダウンロード

使い方

まず始めにスクリプトをウェブサーバやローカルにダウンロードして展開してください。ここではローカルのMac OS X 10.5(Leopard)での手順で説明しますが、スクリプト自体はUNIXライクなOSサーバで動くはずです。

% cd ~/Desktop
% tar xzvf standalone_webdav-*.tar.gz
% cd standalone_webdav

このスクリプトはApacheの2.2以上とmod_davモジュールが必要です。Leopardには既に組み込まれています。もしUbuntuを使っていたら、apache2パッケージをインストールして下さい。

% sudo aptitude install apache2

まずWebDavサーバへのログインパスワードファイルを作ります。このスクリプトはダイジェスト認証を利用します。レルムはdavです。

% htdigest -c .htdigest dav (ユーザー名)
Adding password for test in realm dav.
New password: (パスワード)
Re-type new password: (再度同じパスワード)

次にApacheのモジュールディレクトリへのシンボリックリンクをmoduleという名前で作成します。モジュールディレクトリの場所はApacheのインストール方法に依存しますが、MacOS Xの場合、 /usr/libexec/apache2に、Ubuntuの場合/usr/lib/apache2/modulesになります。

% ln -s /usr/libexec/apache2 ./modules

これて次のファイルがstandalone_webdavにできているはずです。

% ls -al (結果の詳細は省略)
drwxr-xr-x .
drwxr-xr-x ..
-rw-r--r-- .htdigest
-rwxr-xr-x httpd
-rw-r--r-- httpd.conf
lrwxr-xr-x modules -> /usr/libexec/apache2

これで準備ができました。mod_davだけのapacheを起動しましょう。

% ./httpd
Usage ./httpd [start|foreground|stop|restart]
% ./httpd start
Booting /usr/sbin/httpd...
/usr/sbin/httpd is running (pid=28147)

標準では6000番ポートで起動します。ポート番号はhttpd.confの先頭を書き換える事で変更することができます。ではFinderから確認してみましょう。 Finderのメニューからサーバに接続を選んでhttp://localhost:6000と入力して接続します。

サーバーに接続 ログイン画面

ログイン画面が表示されたら、先ほどhtdigestで指定したユーザ名とパスワードを入力します。認証に成功してドライブがデスクトップに現れるはずです。

テストが成功したら、以下の手順でサーバを終了します。

% ./httpd stop
Killing 28147...
/usr/sbin/httpd was stoped

アップロードしたファイルはdocument_rootディレクトリに保存されます。このディレクトリはスクリプトが作ります。また、ログファイルがlogディレクトリに保存されます。

Share

Comments

お名前
メールアドレス
(任意)
ウェブサイト
(任意)
コメント