1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 1628084:1673582 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <modulesynopsis metafile="mod_dav.xml.meta">
26 <description>分散オーサリングとバージョン管理
27 (<a href="http://www.webdav.org/">WebDAV</a>) 機能</description>
28 <status>Extension</status>
29 <sourcefile>mod_dav.c</sourcefile>
30 <identifier>dav_module</identifier>
33 <p>このモジュールはクラス 1 とクラス 2 の
34 <a href="http://www.webdav.org">WebDAV</a>
35 ('ウェブベースの分散オーサリングとバージョン管理')
37 この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある
39 作成、移動、複製、削除できるようになります。</p>
41 <seealso><directive module="mod_dav_fs">DavLockDB</directive></seealso>
42 <seealso><directive module="core">LimitXMLRequestBody</directive></seealso>
43 <seealso><a href="http://www.webdav.org">WebDAV Resources</a></seealso>
45 <section id="example"><title>Enabling WebDAV</title>
46 <p>mod_dav を有効にするには、<code>httpd.conf</code>
47 ファイル中のコンテナに次を加えます:</p>
49 <highlight language="config">Dav On</highlight>
51 <p>これは DAV ファイルシステムプロバイダを有効にします。DAV
52 ファイルシステムプロバイダは <module>mod_dav_fs</module>
53 モジュールで実装されています。ですから、このモジュールはコンパイル時に
55 <directive module="mod_so">LoadModule</directive>
56 を使用して実行時にロードされている必要があります。</p>
58 <p>さらに、DAV ロックデータベースの場所が
59 <directive module="mod_dav_fs">DavLockDB</directive> ディレクティブを使って
60 <code>httd.conf</code> ファイルのグローバルセクションに指定されている
63 <highlight language="config">
64 DavLockDB /usr/local/apache2/var/DavLock
67 <p>ロックデータベースファイルのあるディレクトリは Apache が実行されている
68 <directive module="mod_unixd">User</directive> と <directive
69 module="mod_unixd" >Group</directive> に書き込み権限がある必要があります。</p>
71 <p><directive module="core" type="section">Limit</directive>
72 節を <directive module="core" type="section">Location</directive>
73 ディレクティブ内部に追加して、DAV が有効な場所への
74 アクセスを制限することもできます。DAV クライアントが
75 一度のリクエストで送信できる最大バイト数を指定したいときは、
76 <directive module="core">LimitXMLRequestBody</directive>
77 ディレクティブを使用する必要があります。「通常の」
78 <directive module="core">LimitRequestBody</directive>
79 ディレクティブは DAV リクエストに対しては効力を持ちません。</p>
81 <example><title>完全な例</title>
82 <highlight language="config">
83 DavLockDB /usr/local/apache2/var/DavLock
85 <Directory /usr/local/apache2/htdocs/foo>
91 AuthUserFile user.passwd
93 <LimitExcept GET POST OPTIONS>
102 <section id="security"><title>セキュリティの問題</title>
104 <p>DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを
105 操作することを可能にしますので、 <module>mod_dav</module> を使用する
106 前に、サーバが安全であることを特に注意して確認しなければなりません。</p>
108 <p>サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。
109 HTTP 基本認証の使用は推奨できません。少なくとも
110 <module>mod_auth_digest</module> モジュールで提供される HTTP
111 ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
112 この認証方法に対応しています。代わりに、<a href="../ssl/">SSL</a> が
113 有効なコネクションを通した基本認証を使うこともできます。</p>
115 <p><module>mod_dav</module> がファイルを操作できるようにするためには、
116 管理下のディレクトリとファイルとに Apache が実行されている <directive
117 module="mod_unixd">User</directive> と <directive
118 module="mod_unixd">Group</directive> で書き込み可能である必要があります。
119 新しく作成されるファイルもこの <directive module="mod_unixd">User</directive>
120 と <directive module="mod_unixd">Group</directive> に所有される
121 ことになります。この理由から、そのアカウントへのアクセスを制御することは
122 重要です。DAV リポジトリは Apache 専用のものだとみなされています。
123 Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム
124 用のツールなどを使って) は許可されていません。</p>
126 <p><module>mod_dav</module> はいろいろな種類のサービス拒否攻撃にさらされる
128 module="core">LimitXMLRequestBody</directive> ディレクティブを使うと
129 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが
131 module="mod_dav">DavDepthInfinity</directive> ディレクティブは
132 <code>PROPFIND</code> リクエストが巨大リポジトリで大量のメモリを消費するのを
133 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を
134 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は
135 Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは
139 <section id="complex"><title>複雑な設定</title>
141 <p>よくある要求に、<module>mod_dav</module> を使って動的なファイル
142 (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。
143 これの実現は、<code>GET</code> リクエストはスクリプトの内容をダウンロードさせる
144 代わりに、スクリプトを常に実行させてしまうので難しくなっています。
145 これを回避する方法には、二つの違う URL を同じコンテンツにマップし、
146 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から
147 操作されたりするように設定するというものがあります。</p>
149 <highlight language="config">
150 Alias /phparea /home/gstein/php_files
151 Alias /php-source /home/gstein/php_files
152 <Location /php-source>
158 <p>この設定により、<code>http://example.com/phparea</code> を PHP スクリプトの
160 <code>http://example.com/php-source</code> を DAV クライアントによる
161 が操作のために使うことができます。</p>
166 <description>WebDAV HTTP メソッドを有効にします</description>
167 <syntax>Dav On|Off|<var>provider-name</var></syntax>
168 <default>Dav Off</default>
169 <contextlist><context>directory</context></contextlist>
172 <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
175 <highlight language="config">
176 <Location /foo>
181 <p><code>On</code> という指定は実際には <module>mod_dav_fs</module>
182 で提供されているデフォルトのプロバイダ、<code>filesystem</code>
183 へのエイリアスになっています。一度あるロケーションで DAV
184 を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
185 ということに注意してください。完全な設定例は<a
186 href="#example">上記のセクション</a> をご覧下さい。</p>
188 <note type="warning">
189 サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
190 そうしなければ誰でもそのサーバでファイルを配布することができるように
197 <name>DavMinTimeout</name>
198 <description>サーバが DAV リソースのロックを維持する最小時間です。
200 <syntax>DavMinTimeout <var>seconds</var></syntax>
201 <default>DavMinTimeout 0</default>
202 <contextlist><context>server config</context><context>virtual host</context>
203 <context>directory</context></contextlist>
206 <p>クライアントが DAV リソースロックを要求した場合、
207 ロックがサーバによって自動的に解除されるまでの時間を
208 同時に指定することができます。この値は単なるリクエストであって、
210 任意の値をクライアントに通知することもできます。</p>
212 <p>クライアントに戻すロックタイムアウトの最小時間を、
213 秒で、指定するために <directive>DavMinTimeout</directive>
215 マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
216 ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
217 <directive>DavMinTimeout</directive> を使って
218 これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
220 <example><title>例</title>
221 <highlight language="config">
222 <Location /MSWord>
231 <name>DavDepthInfinity</name>
232 <description>PROPFIND, Depth: Infinity リクエストを許可します</description>
233 <syntax>DavDepthInfinity on|off</syntax>
234 <default>DavDepthInfinity off</default>
235 <contextlist><context>server config</context><context>virtual host</context>
236 <context>directory</context></contextlist>
239 <p>'Depth: Infinity' を含んでいる
240 <code>PROPFIND</code> リクエストを処理できるようにするには、
241 <directive>DavDepthInfinity</directive>
242 ディレクティブを使います。このタイプのリクエストは
243 denial-of-service アタックとなりうるので、
244 デフォルトでは許可されていません。</p>