mod_dav 
分散オーサリングとバージョン管理
(WebDAV) 機能
Extension
mod_dav.c
dav_module
    このモジュールはクラス 1 とクラス 2 の
    WebDAV
    ('ウェブベースの分散オーサリングとバージョン管理')
    機能を Apache に提供します。
    この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある
    リソースやコレクションを
    作成、移動、複製、削除できるようになります。
DavLockDB
LimitXMLRequestBody
WebDAV Resources
Enabling WebDAV
    mod_dav を有効にするには、httpd.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>
      
        Order Allow,Deny
        Allow from all
        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 クライアントによる
    が操作のために使うことができます。
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 configvirtual host
directory
    クライアントが DAV リソースロックを要求した場合、
    ロックがサーバによって自動的に解除されるまでの時間を
    同時に指定することができます。この値は単なるリクエストであって、
    サーバはこれを無視することもできますし、
    任意の値をクライアントに通知することもできます。
    クライアントに戻すロックタイムアウトの最小時間を、
    秒で、指定するために DavMinTimeout
    ディレクティブを使います。
    マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
    ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
    DavMinTimeout を使って
    これをもっと大きな値 (例えば 600 秒) に上書きできます。
    例
      <Location /MSWord>
      
        DavMinTimeout 600
      
      </Location>
    
     
DavDepthInfinity
PROPFIND, Depth: Infinity リクエストを許可します
DavDepthInfinity on|off
DavDepthInfinity off
server configvirtual host
directory
    'Depth: Infinity' を含んでいる
    PROPFIND リクエストを処理できるようにするには、
    DavDepthInfinity
    ディレクティブを使います。このタイプのリクエストは
    denial-of-service アタックとなりうるので、
    デフォルトでは許可されていません。