extension to the HTTP protocol allows creating, moving,
copying, and deleting resources and collections on a remote web
server.</p>
-
- <p>To enable mod_dav, add the following to a container in your
- <code>httpd.conf</code> file:</p>
-
-<example>Dav On</example>
-
- <p>Also, specify a valid filename for the DAV lock database by
- adding the following to the global section in your
- <code>httpd.conf</code> file:</p>
-
-<example>DavLockDB /tmp/DavLock
- <em>(Any web-server writable filename, without an
- extension)</em>
-</example>
</summary>
-
-<directivesynopsis>
-<name>Dav</name>
-<description>Enable WebDAV HTTP methods</description>
-<syntax>Dav on|off</syntax>
-<default>Dav off</default>
-<contextlist><context>directory</context></contextlist>
-
-<usage>
- <p>Use the <directive>Dav</directive> directive to enable the
- WebDAV HTTP methods for the given container. You may wish to add a
- <directive module="core" type="section">Limit</directive> clause
- inside the <directive module="core"
- type="section">location</directive> directive to limit access to
- DAV-enabled locations.</p>
-
-<example><title>Example</title>
- DavLockDB /tmp/DavLock<br />
- <br />
- <Location /foo><br />
+<seealso><directive module="mod_dav_fs">DavLockDB</directive></seealso>
+<seealso><directive module="core">LimitXMLRequestBody</directive></seealso>
+<seealso><a href="http://www.webdav.org">WebDAV Resources</a></seealso>
+
+<section id="example"><title>Enabling WebDAV</title>
+ <p>To enable <module>mod_dav</module>, add the following to a
+ container in your <code>httpd.conf</code> file:</p>
+
+ <example>Dav On</example>
+
+ <p>This enables the DAV file system provider, which is implemented by
+ the <module>mod_dav_fs</module> module. Therefore that module has to
+ be compiled into the server or has to be loaded at runtime using the
+ <directive module="mod_so">LoadModule</directive> directive.</p>
+
+ <p>In order to make it work you have to specify a web-server writable
+ filename for the DAV lock database by adding the following to the
+ global section in your <code>httpd.conf</code> file:</p>
+
+ <example>
+ DavLockDB /tmp/DavLock
+ </example>
+
+ <p>You may wish to add a <directive module="core" type="section"
+ >Limit</directive> clause inside the <directive module="core"
+ type="section">Location</directive> directive to limit access to
+ DAV-enabled locations. If you want to set the maximum amount of
+ bytes that a DAV client can send at one request, you have to use
+ the <directive module="core">LimitXMLRequestBody</directive>
+ directive. The "normal" <directive module="core"
+ >LimitRequestBody</directive> directive has no effect on DAV
+ requests.</p>
+
+ <example><title>Full Example</title>
+ DavLockDB /tmp/DavLock<br />
+ <br />
+ <Location /foo><br />
+ <indent>
Dav On<br />
- <br />
+ <br />
AuthType Basic<br />
AuthName DAV<br />
AuthUserFile user.passwd<br />
- <br />
- <LimitExcept GET HEAD OPTIONS><br />
- require user admin<br />
- </LimitExcept><br />
- </Location><br />
-</example>
-</usage>
-</directivesynopsis>
+ <br />
+ <LimitExcept GET HEAD OPTIONS><br />
+ <indent>
+ require user admin<br />
+ </indent>
+ </LimitExcept><br />
+ </indent>
+ </Location><br />
+ </example>
+
+ <note type="warning"><title>Security</title>
+ <p>The use of HTTP Basic Authentication is not recommended. You
+ should use at least HTTP Digest Authentication, which is provided by
+ the <module>mod_auth_digest</module> module. Nearly all WebDAV clients
+ support this authentication method. Of course, Basic Authentication
+ over an <a href="../ssl/">SSL</a> enabled connection is secure,
+ too.</p>
+ </note>
+</section>
<directivesynopsis>
-<name>DavLockDB</name>
-<description>Location of the DAV lock database</description>
-<syntax>DavLockDB <em>file-path</em></syntax>
-<contextlist><context>server config</context><context>virtual host</context>
-</contextlist>
+<name>Dav</name>
+<description>Enable WebDAV HTTP methods</description>
+<syntax>Dav On|Off|<var>provider-name</var></syntax>
+<default>Dav Off</default>
+<contextlist><context>directory</context></contextlist>
<usage>
- <p>Use the <directive>DavLockDB</directive> directive to specify
- the full path to the lock database, excluding an extension. The
- default (file system) implementation of mod_dav uses a SDBM
- database to track user locks. The utility
- <code>modules/dav/util/lockview</code> can be used from the server
- to display all locks in a lock database.</p>
-
-<example><title>Example</title>
-DavLockDB /tmp/DavLock
-</example>
+ <p>Use the <directive>Dav</directive> directive to enable the
+ WebDAV HTTP methods for the given container:</p>
+
+ <example>
+ <Location /foo><br />
+ <indent>
+ Dav On<br />
+ </indent>
+ </Location>
+ </example>
+
+ <p>The value <code>On</code> is actually an alias for the default
+ provider <code>filesystem</code> which is served by the <module
+ >mod_dav_fs</module> module. Note, that once you have DAV enabled
+ for some location, it <em>cannot</em> be disabled for sublocations.
+ For a complete configuration example have a look at the <a
+ href="#example">section above</a>.</p>
+
+ <note type="warning">
+ Do not enable WebDAV until you have secured your server. Otherwise
+ everyone will be able to distribute files on your system.
+ </note>
</usage>
</directivesynopsis>
<name>DavMinTimeout</name>
<description>Minimum amount of time the server holds a lock on
a DAV resource</description>
-<syntax>DavMinTimeout <em>seconds</em></syntax>
+<syntax>DavMinTimeout <var>seconds</var></syntax>
<default>DavMinTimeout 0</default>
-<contextlist><context>directory</context></contextlist>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context></contextlist>
<usage>
<p>When a client requests a DAV resource lock, it can also
(like 600 seconds) to reduce the chance of the client losing
the lock due to network latency.</p>
-<example><title>Example</title>
- <Location /MSWord><br />
- DavMinTimeout 600<br />
- </Location><br />
-</example>
+ <example><title>Example</title>
+ <Location /MSWord><br />
+ <indent>
+ DavMinTimeout 600<br />
+ </indent>
+ </Location>
+ </example>
</usage>
</directivesynopsis>
<description>Allow PROPFIND, Depth: Infinity requests</description>
<syntax>DavDepthInfinity on|off</syntax>
<default>DavDepthInfinity off</default>
-<contextlist><context>directory</context></contextlist>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context></contextlist>
<usage>
<p>Use the <directive>DavDepthInfinity</directive> directive to
- allow the processing of PROPFIND requests containing the header
- 'Depth: Infinity'. Because this type of request could constitute a
- denial-of-service attack, by default it is not allowed.</p>
+ allow the processing of <code>PROPFIND</code> requests containing the
+ header 'Depth: Infinity'. Because this type of request could constitute
+ a denial-of-service attack, by default it is not allowed.</p>
</usage>
</directivesynopsis>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
+<modulesynopsis>
+
+<name>mod_dav_fs</name>
+<description>filesystem provider for <module>mod_dav</module></description>
+<status>Extension</status>
+<sourcefile>mod_dav_fs.c</sourcefile>
+<identifier>dav_fs_module</identifier>
+
+<summary>
+ <p>This module <em>requires</em> the service of <module
+ >mod_dav</module>. It acts as a support module for <module
+ >mod_dav</module> and provides access to resources located in the
+ server's file system. The formal name of this provider is
+ <code>filesystem</code>. <module>mod_dav</module> backend providers
+ will be invoked by using the <directive module="mod_dav">Dav</directive>
+ directive:</p>
+
+ <example><title>Example</title>
+ Dav filesystem
+ </example>
+
+ <p>Since <code>filesystem</code> is the default provider for
+ <module>mod_dav</module>, you may simply use the value
+ <code>On</code> instead.</p>
+</summary>
+<seealso><module>mod_dav</module></seealso>
+
+<directivesynopsis>
+<name>DavLockDB</name>
+<description>Location of the DAV lock database</description>
+<syntax>DavLockDB <var>file-path</var></syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+ <p>Use the <directive>DavLockDB</directive> directive to specify
+ the full path to the lock database, excluding an extension. If
+ the path is not absolute, it will be taken relative to <directive
+ module="core">ServerRoot</directive>. The implementation of
+ <module>mod_dav_fs</module> uses a SDBM database to track user
+ locks.</p>
+
+ <!-- XXX: someone should add that tool to the support directory...
+ The utility <code>modules/dav/util/lockview</code> can be used from
+ the server to display all locks in a lock database.</p> -->
+
+ <example><title>Example</title>
+ DavLockDB logs/DavLock
+ </example>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
+