<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_dav - Apache HTTP サーバ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.2</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.2</a> &gt; <a href="./">モジュール</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache モジュール mod_dav</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_dav.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_dav.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<div class="outofdate">This translation may be out of date. Check the
            English version for recent changes.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>分散オーサリングとバージョン管理
(<a href="http://www.webdav.org/">WebDAV</a>) 機能</td></tr>
<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>dav_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_dav.c</td></tr></table>
<h3>概要</h3>

    <p>このモジュールはクラス 1 とクラス 2 の
    <a href="http://www.webdav.org">WebDAV</a>
    ('ウェブベースの分散オーサリングとバージョン管理')
    機能を Apache に提供します。
    この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある
    リソースやコレクションを
    作成、移動、複製、削除できるようになります。</p>
</div>
<div id="quickview"><h3 class="directives">ディレクティブ</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#dav">Dav</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#davdepthinfinity">DavDepthInfinity</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#davmintimeout">DavMinTimeout</a></li>
</ul>
<h3>トピック</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#example">Enabling WebDAV</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティの問題</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#complex">複雑な設定</a></li>
</ul><h3>参照</h3>
<ul class="seealso">
<li><code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code></li>
<li><code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code></li>
<li><a href="http://www.webdav.org">WebDAV Resources</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Enabling WebDAV</a></h2>
    <p>mod_dav を有効にするには、<code>httpd.conf</code>
    ファイル中のコンテナに次を加えます:</p>

    <div class="example"><p><code>Dav On</code></p></div>

    <p>これは DAV ファイルシステムプロバイダを有効にします。DAV
    ファイルシステムプロバイダは <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
    モジュールで実装されています。ですから、このモジュールはコンパイル時に
    サーバに組み込まれているか、あるいは
    <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>
    を使用して実行時にロードされている必要があります。</p>
    
    <p>さらに、DAV ロックデータベースの場所が
    <code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code> ディレクティブを使って
    <code>httd.conf</code> ファイルのグローバルセクションに指定されている
    必要があります。</p>

    <div class="example"><p><code>
      DavLockDB /usr/local/apache2/var/DavLock
    </code></p></div>

    <p>ロックデータベースファイルのあるディレクトリは Apache が実行されている
    <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> と <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> に書き込み権限がある必要があります。</p>

    <p><code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code>
    節を <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
    ディレクティブ内部に追加して、DAV が有効な場所への
    アクセスを制限することもできます。DAV クライアントが
    一度のリクエストで送信できる最大バイト数を指定したいときは、
    <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code>
    ディレクティブを使用する必要があります。「通常の」
    <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>
    ディレクティブは DAV リクエストに対しては効力を持ちません。</p>

    <div class="example"><h3>完全な例</h3><p><code>
      DavLockDB /usr/local/apache2/var/DavLock<br />
      <br />
       &lt;Location /foo&gt;<br />
       <span class="indent">
         Order Allow,Deny<br />
         Allow from all<br />
         Dav On<br />
         <br />
         AuthType Basic<br />
         AuthName DAV<br />
         AuthUserFile user.passwd<br />
         <br />
         &lt;LimitExcept GET OPTIONS&gt;<br />
         <span class="indent">
           require user admin<br />
         </span>
         &lt;/LimitExcept&gt;<br />
       </span>
       &lt;/Location&gt;<br />
    </code></p></div>

    <p><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> は Greg Stein さんの <a href="http://www.webdav.org/mod_dav/">Apache 1.3 用の mod_dav</a> に
    由来するものです。そのサイトからより多くの情報を手に入れることができます。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="security" id="security">セキュリティの問題</a></h2>

    <p>DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを
    操作することを可能にしますので、 <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> を使用する
    前に、サーバが安全であることを特に注意して確認しなければなりません。</p>

    <p>サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。
    HTTP 基本認証の使用は推奨できません。少なくとも 
    <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> モジュールで提供される HTTP 
    ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは
    この認証方法に対応しています。代わりに、<a href="../ssl/">SSL</a> が
    有効なコネクションを通した基本認証を使うこともできます。</p>

    <p><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> がファイルを操作できるようにするためには、
    管理下のディレクトリとファイルとに Apache が実行されている <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> と <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> で書き込み可能である必要があります。
    新しく作成されるファイルもこの <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code>
    と <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> に所有される
    ことになります。この理由から、そのアカウントへのアクセスを制御することは
    重要です。DAV リポジトリは Apache 専用のものだとみなされています。
    Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム
    用のツールなどを使って) は許可されていません。</p>

    <p><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> はいろいろな種類のサービス拒否攻撃にさらされる
    かもしれません。<code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> ディレクティブを使うと
    大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが
    できます。<code class="directive"><a href="#davdepthinfinity">DavDepthInfinity</a></code> ディレクティブは
    <code>PROPFIND</code> リクエストが巨大リポジトリで大量のメモリを消費するのを
    防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を
    多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は
    Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは
    避けた方が良いでしょう。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="complex" id="complex">複雑な設定</a></h2>

    <p>よくある要求に、<code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code> を使って動的なファイル
    (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。
    これの実現は、<code>GET</code> リクエストはスクリプトの内容をダウンロードさせる
    代わりに、スクリプトを常に実行させてしまうので難しくなっています。
    これを回避する方法には、二つの違う URL を同じコンテンツにマップし、
    一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から
    操作されたりするように設定するというものがあります。</p>

<div class="example"><p><code>
Alias /phparea /home/gstein/php_files<br />
Alias /php-source /home/gstein/php_files<br />
&lt;Location /php-source&gt;
<span class="indent">
    DAV On<br />
    ForceType text/plain<br />
</span>
&lt;/Location&gt;
</code></p></div>

    <p>この設定により、<code>http://example.com/phparea</code> を PHP スクリプトの
    出力をアクセスするために使うことができ、
    <code>http://example.com/php-source</code> を DAV クライアントによる
    が操作のために使うことができます。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
    <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
    次のようにします。</p>

    <div class="example"><p><code>
      &lt;Location /foo&gt;<br />
      <span class="indent">
        Dav On<br />
      </span>
      &lt;/Location&gt;
    </code></p></div>

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

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

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
    <p>'Depth: Infinity' を含んでいる
    <code>PROPFIND</code> リクエストを処理できるようにするには、
    <code class="directive">DavDepthInfinity</code>
    ディレクティブを使います。このタイプのリクエストは
    denial-of-service アタックとなりうるので、
    デフォルトでは許可されていません。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
</table>
    <p>クライアントが DAV リソースロックを要求した場合、
    ロックがサーバによって自動的に解除されるまでの時間を
    同時に指定することができます。この値は単なるリクエストであって、
    サーバはこれを無視することもできますし、
    任意の値をクライアントに通知することもできます。</p>

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

    <div class="example"><h3>例</h3><p><code>
      &lt;Location /MSWord&gt;<br />
      <span class="indent">
        DavMinTimeout 600<br />
      </span>
      &lt;/Location&gt;
    </code></p></div>

</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_dav.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_dav.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>