Apache HTTP サーバ バージョン 2.0

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.0 > モジュール

# Apache モジュール mod_dav

Available Languages: en | ja | ko

説明: | 分散オーサリングとバージョン管理 (WebDAV) 機能
ステータス: | Extension
モジュール識別子: | dav_module
ソースファイル: | mod_dav.c

### 概要

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

### ディレクティブ

### トピック

- WebDAV を有効にする

### 参照

- `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`
コンテキスト: | ディレクトリ
ステータス: | Extension
モジュール: | mod_dav

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

`<Location /foo>
Dav On
</Location>`

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

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

## DavDepthInfinity ディレクティブ

説明: | PROPFIND, Depth: Infinity リクエストを許可します
構文: | `DavDepthInfinity on|off`
デフォルト: | `DavDepthInfinity off`
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス: | Extension
モジュール: | mod_dav

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

## DavMinTimeout ディレクティブ

説明: | サーバが DAV リソースのロックを維持する最小時間です。
構文: | `DavMinTimeout seconds`
デフォルト: | `DavMinTimeout 0`
コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス: | Extension
モジュール: | mod_dav

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

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

### 例

`<Location /MSWord>
DavMinTimeout 600
</Location>`

Available Languages: en | ja | ko