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: 659902:1031084 (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 <example>Dav On</example>
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> ファイルのグローバルセクションに指定されている
64 DavLockDB /usr/local/apache2/var/DavLock
67 <p>ロックデータベースファイルのあるディレクトリは Apache が実行されている
68 <directive module="mpm_common">User</directive> と <directive
69 module="mpm_common" >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 DavLockDB /usr/local/apache2/var/DavLock<br />
84 <Directory /usr/local/apache2/htdocs/foo><br />
86 Order Allow,Deny<br />
92 AuthUserFile user.passwd<br />
94 <LimitExcept GET POST OPTIONS><br />
96 Require user admin<br />
98 </LimitExcept><br />
100 </Directory><br />
103 <p><module>mod_dav</module> は Greg Stein さんの <a
104 href="http://www.webdav.org/mod_dav/">Apache 1.3 用の mod_dav</a> に
105 由来するものです。そのサイトからより多くの情報を手に入れることができます。</p>
108 <section id="security"><title>セキュリティの問題</title>
110 <p>DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを
111 操作することを可能にしますので、 <module>mod_dav</module> を使用する
112 前に、サーバが安全であることを特に注意して確認しなければなりません。</p>
114 <p>サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。
115 HTTP 基本認証の使用は推奨できません。少なくとも
116 <module>mod_auth_digest</module> モジュールで提供される HTTP
117 ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
118 この認証方法に対応しています。代わりに、<a href="../ssl/">SSL</a> が
119 有効なコネクションを通した基本認証を使うこともできます。</p>
121 <p><module>mod_dav</module> がファイルを操作できるようにするためには、
122 管理下のディレクトリとファイルとに Apache が実行されている <directive
123 module="mpm_common">User</directive> と <directive
124 module="mpm_common">Group</directive> で書き込み可能である必要があります。
125 新しく作成されるファイルもこの <directive module="mpm_common">User</directive>
126 と <directive module="mpm_common">Group</directive> に所有される
127 ことになります。この理由から、そのアカウントへのアクセスを制御することは
128 重要です。DAV リポジトリは Apache 専用のものだとみなされています。
129 Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム
130 用のツールなどを使って) は許可されていません。</p>
132 <p><module>mod_dav</module> はいろいろな種類のサービス拒否攻撃にさらされる
134 module="core">LimitXMLRequestBody</directive> ディレクティブを使うと
135 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが
137 module="mod_dav">DavDepthInfinity</directive> ディレクティブは
138 <code>PROPFIND</code> リクエストが巨大リポジトリで大量のメモリを消費するのを
139 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を
140 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は
141 Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは
145 <section id="complex"><title>複雑な設定</title>
147 <p>よくある要求に、<module>mod_dav</module> を使って動的なファイル
148 (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。
149 これの実現は、<code>GET</code> リクエストはスクリプトの内容をダウンロードさせる
150 代わりに、スクリプトを常に実行させてしまうので難しくなっています。
151 これを回避する方法には、二つの違う URL を同じコンテンツにマップし、
152 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から
153 操作されたりするように設定するというものがあります。</p>
156 Alias /phparea /home/gstein/php_files<br />
157 Alias /php-source /home/gstein/php_files<br />
158 <Location /php-source>
161 ForceType text/plain<br />
166 <p>この設定により、<code>http://example.com/phparea</code> を PHP スクリプトの
168 <code>http://example.com/php-source</code> を DAV クライアントによる
169 が操作のために使うことができます。</p>
174 <description>WebDAV HTTP メソッドを有効にします</description>
175 <syntax>Dav On|Off|<var>provider-name</var></syntax>
176 <default>Dav Off</default>
177 <contextlist><context>directory</context></contextlist>
180 <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
184 <Location /foo><br />
191 <p><code>On</code> という指定は実際には <module>mod_dav_fs</module>
192 で提供されているデフォルトのプロバイダ、<code>filesystem</code>
193 へのエイリアスになっています。一度あるロケーションで DAV
194 を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
195 ということに注意してください。完全な設定例は<a
196 href="#example">上記のセクション</a> をご覧下さい。</p>
198 <note type="warning">
199 サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
200 そうしなければ誰でもそのサーバでファイルを配布することができるように
207 <name>DavMinTimeout</name>
208 <description>サーバが DAV リソースのロックを維持する最小時間です。
210 <syntax>DavMinTimeout <var>seconds</var></syntax>
211 <default>DavMinTimeout 0</default>
212 <contextlist><context>server config</context><context>virtual host</context>
213 <context>directory</context></contextlist>
216 <p>クライアントが DAV リソースロックを要求した場合、
217 ロックがサーバによって自動的に解除されるまでの時間を
218 同時に指定することができます。この値は単なるリクエストであって、
220 任意の値をクライアントに通知することもできます。</p>
222 <p>クライアントに戻すロックタイムアウトの最小時間を、
223 秒で、指定するために <directive>DavMinTimeout</directive>
225 マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
226 ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
227 <directive>DavMinTimeout</directive> を使って
228 これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
230 <example><title>例</title>
231 <Location /MSWord><br />
233 DavMinTimeout 600<br />
241 <name>DavDepthInfinity</name>
242 <description>PROPFIND, Depth: Infinity リクエストを許可します</description>
243 <syntax>DavDepthInfinity on|off</syntax>
244 <default>DavDepthInfinity off</default>
245 <contextlist><context>server config</context><context>virtual host</context>
246 <context>directory</context></contextlist>
249 <p>'Depth: Infinity' を含んでいる
250 <code>PROPFIND</code> リクエストを処理できるようにするには、
251 <directive>DavDepthInfinity</directive>
252 ディレクティブを使います。このタイプのリクエストは
253 denial-of-service アタックとなりうるので、
254 デフォルトでは許可されていません。</p>