Apache HTTP サーバ バージョン 2.4

| 説明: | 分散オーサリングとバージョン管理 (WebDAV) 機能 | 
|---|---|
| ステータス: | Extension | 
| モジュール識別子: | dav_module | 
| ソースファイル: | mod_dav.c | 
このモジュールはクラス 1 とクラス 2 の WebDAV ('ウェブベースの分散オーサリングとバージョン管理') 機能を Apache に提供します。 この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある リソースやコレクションを 作成、移動、複製、削除できるようになります。
mod_dav を有効にするには、apache2.conf
    ファイル中のコンテナに次を加えます:
Dav On
これは DAV ファイルシステムプロバイダを有効にします。DAV
    ファイルシステムプロバイダは mod_dav_fs
    モジュールで実装されています。ですから、このモジュールはコンパイル時に
    サーバに組み込まれているか、あるいは
    LoadModule
    を使用して実行時にロードされている必要があります。
さらに、DAV ロックデータベースの場所が
    DavLockDB ディレクティブを使って
    httd.conf ファイルのグローバルセクションに指定されている
    必要があります。
DavLockDB /usr/local/apache2/var/DavLock
ロックデータベースファイルのあるディレクトリは Apache が実行されている
    User と Group に書き込み権限がある必要があります。
<Limit>
    節を <Location>
    ディレクティブ内部に追加して、DAV が有効な場所への
    アクセスを制限することもできます。DAV クライアントが
    一度のリクエストで送信できる最大バイト数を指定したいときは、
    LimitXMLRequestBody
    ディレクティブを使用する必要があります。「通常の」
    LimitRequestBody
    ディレクティブは DAV リクエストに対しては効力を持ちません。
DavLockDB /usr/local/apache2/var/DavLock
<Directory /usr/local/apache2/htdocs/foo>
    Require all granted
    Dav On
    AuthType Basic
    AuthName DAV
    AuthUserFile user.passwd
    <LimitExcept GET POST OPTIONS>
        Require user admin
    </LimitExcept>
</Directory>
DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを
    操作することを可能にしますので、 mod_dav を使用する
    前に、サーバが安全であることを特に注意して確認しなければなりません。
サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。
    HTTP 基本認証の使用は推奨できません。少なくとも 
    mod_auth_digest モジュールで提供される HTTP 
    ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
    この認証方法に対応しています。代わりに、SSL が
    有効なコネクションを通した基本認証を使うこともできます。
mod_dav がファイルを操作できるようにするためには、
    管理下のディレクトリとファイルとに Apache が実行されている User と Group で書き込み可能である必要があります。
    新しく作成されるファイルもこの User
    と Group に所有される
    ことになります。この理由から、そのアカウントへのアクセスを制御することは
    重要です。DAV リポジトリは Apache 専用のものだとみなされています。
    Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム
    用のツールなどを使って) は許可されていません。
mod_dav はいろいろな種類のサービス拒否攻撃にさらされる
    かもしれません。LimitXMLRequestBody ディレクティブを使うと
    大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが
    できます。DavDepthInfinity ディレクティブは
    PROPFIND リクエストが巨大リポジトリで大量のメモリを消費するのを
    防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を
    多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は
    Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは
    避けた方が良いでしょう。
よくある要求に、mod_dav を使って動的なファイル
    (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。
    これの実現は、GET リクエストはスクリプトの内容をダウンロードさせる
    代わりに、スクリプトを常に実行させてしまうので難しくなっています。
    これを回避する方法には、二つの違う URL を同じコンテンツにマップし、
    一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から
    操作されたりするように設定するというものがあります。
Alias /phparea /home/gstein/php_files
Alias /php-source /home/gstein/php_files
<Location /php-source>
    Dav On
    ForceType text/plain
</Location>
    この設定により、http://example.com/phparea を PHP スクリプトの
    出力をアクセスするために使うことができ、
    http://example.com/php-source を 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 
    を有効にした後は、そのサブロケーションで無効化することはできない
    ということに注意してください。完全な設定例は上記のセクション をご覧下さい。
| 説明: | PROPFIND, Depth: Infinity リクエストを許可します | 
|---|---|
| 構文: | DavDepthInfinity on|off | 
| デフォルト: | DavDepthInfinity off | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ | 
| ステータス: | Extension | 
| モジュール: | mod_dav | 
'Depth: Infinity' を含んでいる
    PROPFIND リクエストを処理できるようにするには、
    DavDepthInfinity
    ディレクティブを使います。このタイプのリクエストは
    denial-of-service アタックとなりうるので、
    デフォルトでは許可されていません。
| 説明: | サーバが DAV リソースのロックを維持する最小時間です。 | 
|---|---|
| 構文: | DavMinTimeout seconds | 
| デフォルト: | DavMinTimeout 0 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ | 
| ステータス: | Extension | 
| モジュール: | mod_dav | 
クライアントが DAV リソースロックを要求した場合、 ロックがサーバによって自動的に解除されるまでの時間を 同時に指定することができます。この値は単なるリクエストであって、 サーバはこれを無視することもできますし、 任意の値をクライアントに通知することもできます。
クライアントに戻すロックタイムアウトの最小時間を、
    秒で、指定するために DavMinTimeout
    ディレクティブを使います。
    マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
    ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
    DavMinTimeout を使って
    これをもっと大きな値 (例えば 600 秒) に上書きできます。
<Location /MSWord>
    DavMinTimeout 600
</Location>