mod_dav
分散オーサリングとバージョン管理 (WebDAV) 機能
Extension
mod_dav.c
dav_module

このモジュールはクラス 1 とクラス 2 の WebDAV ('ウェブベースの分散オーサリングとバージョン管理') 機能を Apache に提供します。 この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある リソースやコレクションを 作成、移動、複製、削除できるようになります。

DavLockDB
LimitXMLRequestBody
WebDAV Resources

# WebDAV を有効にする

mod_dav を有効にするには、`httpd.conf` ファイル中のコンテナに次を加えます:

Dav On

これは DAV ファイルシステムプロバイダを有効にします。DAV ファイルシステムプロバイダは mod_dav_fs モジュールで実装されています。ですから、このモジュールはコンパイル時に サーバに組み込まれているか、あるいは LoadModule を使用して実行時にロードされている必要があります。

動作させるには、`httd.conf` ファイルの グローバルセクションに次を加えて、ウェブサーバが書き込みできる DAV ロックデータベースファイル名を指定します。

DavLockDB /tmp/DavLock

Limit 節を Location ディレクティブ内部に追加して、DAV が有効な場所への アクセスを制限することもできます。DAV クライアントが 一度のリクエストで送信できる最大バイト数を指定したいときは、 LimitXMLRequestBody ディレクティブを使用する必要があります。「通常の」 LimitRequestBody ディレクティブは DAV リクエストに対しては効力を持ちません。

## 完全な例

DavLockDB /tmp/DavLock
<Location /foo>
Dav On
AuthType Basic
AuthName DAV
AuthUserFile user.passwd
<LimitExcept GET HEAD OPTIONS>
require user admin
</LimitExcept>
</Location>

## セキュリティ

HTTP 基本認証の使用は推奨できません。少なくとも mod_auth_digest モジュールで提供される HTTP ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは この認証方法に対応しています。もちろん、SSL が有効なコネクションを通した基本認証でもセキュリティが確保できます。

Dav
WebDAV HTTP メソッドを有効にします
Dav On|Off|provider-name
Dav Off
directory

与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには 次のようにします。

<Location /foo>
Dav On
</Location>

`On` という指定は実際には mod_dav_fs で提供されているデフォルトのプロバイダ、`filesystem` へのエイリアスになっています。一度あるロケーションで DAV を有効にした後は、そのサブロケーションで無効化することはできない ということに注意してください。完全な設定例は上記のセクション をご覧下さい。

サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。 そうしなければ誰でもそのサーバでファイルを配布することができるように なってしまいます。

DavMinTimeout
サーバが DAV リソースのロックを維持する最小時間です。
DavMinTimeout seconds
DavMinTimeout 0
server config
virtual host
directory

クライアントが DAV リソースロックを要求した場合、 ロックがサーバによって自動的に解除されるまでの時間を 同時に指定することができます。この値は単なるリクエストであって、 サーバはこれを無視することもできますし、 任意の値をクライアントに通知することもできます。

クライアントに戻すロックタイムアウトの最小時間を、 秒で、指定するために DavMinTimeout ディレクティブを使います。 マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが； ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、 DavMinTimeout を使って これをもっと大きな値 (例えば 600 秒) に上書きできます。

# 例

<Location /MSWord>
DavMinTimeout 600
</Location>
DavDepthInfinity
PROPFIND, Depth: Infinity リクエストを許可します
DavDepthInfinity on|off
DavDepthInfinity off
server config
virtual host
directory

'Depth: Infinity' を含んでいる `PROPFIND` リクエストを処理できるようにするには、 DavDepthInfinity ディレクティブを使います。このタイプのリクエストは denial-of-service アタックとなりうるので、 デフォルトでは許可されていません。