Tips記事
» 2003年01月09日 06時07分 UPDATE

WebDAVが使いたい

[木田佳克,ITmedia]

 HTTPを利用したWebコンテンツの更新手段を提供するWebDAV(Web-enabled Distributed Authoring and Versioning)。HTTPプロトコルの拡張セットであり、httpサーバ上でアクセス可能なファイルの管理、編集を実現する。

 動作環境となるApacheのバージョン1.3xでは、WebDAVを機能させるモジュールが1つで構成されていた。しかし、Apache 2.0からは「mod_dav」「mod_dav_fs」と呼ばれる2つのモジュールに変更されている。2つに分かれたことで、mod_davがWebDAV機能のフロントエンドモジュールとして機能し、プロトコルのやり取りがmod_dav_fsへ渡されるという構成になっているのだ。ここではそれぞれのバージョンで実現する手順を解説しよう。

 まず最初に、HTTPでアクセス可能なエリアに、DAVアクセスを可能とする領域を定義する。ここでは新規に/var/www/html/dav/ディレクトリを作り、まずは既存のコンテンツとは隔離した上でテスト環境とした。また、dav/ディレクトリのオーナー権はApacheの設定ファイル内でどのようになっているかを確認し変更する必要がある(ここでは「apache」)。

1. DAVアクセス可能なディレクトリを設定する

# cd /var/www/html
# mkdir dav
# chown apache.apache dav
# chmod a-rwx dav
# chmod u+rwx dav

--------
※ アクセス権はApacheの設定ファイル内で確認すればよい。

# cat /etc/httpd/conf/httpd.conf|grep ^User
User apache

# cat /etc/httpd/conf/httpd.conf|grep ^Group
Group apache

2. mod_davモジュールの組み込み設定をする

 RPMパッケージでインストールされたApacheでは、「LoadModule」(1.3.xxではAddModule含む)行があらかじめ設定記述されている。このため、実際のアクセスディレクトリを追加設定するだけでよい。以下の設定例を参考にし、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)の中に記述があるかを確認しよう。

・Apache 2.0の場合

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>

<Location /dav>
DAV On
AllowOverride none
Options none
<LimitExcept GET HEAD OPTIONS>
require user ykida
</LimitExcept>
</Location>
DAVLockDB /var/lib/dav/lockdb

・Apache 1.3の場合

LoadModule dav_module libexec/libdav.so
AddModule mod_dav.c

<Location /dav>
DAV On
AllowOverride none
Options none
<LimitExcept GET HEAD OPTIONS>
require user ykida
</LimitExcept>
</Location>
DAVLockDB /var/lib/dav/lockdb

 なお、上記に挙げた設定例は、モジュールの記述2行とディレクトリ設定(下側、Location行の組)が寄り添っている必要はない。実際のhttpd.confを見ると分かるが、LoadModuleと他の「<Location ...>や<Directory ...>」の記述は離れているはずだ。それぞれの記述に近い個所に追加すればよい。また、若干灰色文字で表した「LimitExcept」の個所は、DAV機能が確認できるまではコメントにしておいてもよい。その場合には、後述する「3. アクセス認証設定を行う」の設定を省く。

 上記の設定により、GET、HEAD、OPTIONS以外のメソッドがユーザー「ykida」として認証が可能となる。

3. アクセス認証設定を行う

 dav/ディレクトリ下には、httpd.conf内で設定したようにアクセス制限を行う必要がある。そこで、「.htaccessで秘密の認証ページを作る」Tipsでも解説しているように、.htaccessファイルで制限を行う。

# vi /var/www/html/dav/.htaccess

AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName DAVhome
AuthType Basic
<Limit HEAD PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Require user ykida
</Limit>

 上記の設定例では、/var/www/ディレクトリ下にパスワード設定ファイル「.htpasswd」が置かれており、「<Limit ....>」に記述されているメソッド(要求)のアクセスがある場合にアクセス認証を必要とする。.htaccessの詳細については、上記の別Tipsを参考にしてほしい。

4. クライアントからのアクセス設定をする

 最後に、実際にクライアントからDAVアクセスを行う方法を挙げよう。まず最初にWindows XPの標準機能でアクセスする手段だ。

画面
「マイネットワーク」内の「ネットワークプレースを追加する」を選択

画面
ウィザードが開始される。順番に「次へ」ボタンで進めよう

画面
ここではhttpサーバ上のWebDAVアクセス先を設定する。前でhttpd.conf内に記述した通り、ここでは「/dav」とする

画面
アクセス認証ウィンドウが表示されるが、ここではhtpasswdコマンドで設定したパスワードを入力すればよい

・関連記事
Windows How-To - WebDAV -

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ