Apache2 WebDAV module for Foswiki

WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.

This module contains a full Class 2 WebDAV implementation. It uses a standard abstraction of the server filesystem, allowing it to be used with a range of different filesystems, including (via the FilesysVirtualPlugin) the Foswiki datastore.

The module is designed to work with a number of different web servers, and also includes a complete stand-alone server implementation.

Integration with WebDAV means that users can edit topics and attachments using an appropriate WebDAV enabled client program, such as Microsoft Office, Internet Explorer, Open Office, etc. When used with the companion WebDAVLinkPlugin, you can embed links to WebDAV resources in Foswiki pages that will open the linked documents in native applications.

Foswiki permissions are honoured throughout.

Use of the FilesysVirtualPlugin means that all the data views supported by that module are available to WebDAV clients, so clients can read and write Foswiki topics as text, as HTML, as a JSON data structure, or as any other view supported by FilesysVirtualPlugin.

Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See http://foswiki.org/Support/ManuallyInstallingExtensions for more help.


If you encounter problems with clients it can be useful to be able to trace the activity of the server. All the web servers have some mechanism to pass a debugging option in. This tracing option is in the form of a bit mask, where the bits mean:
  • 1 to enable error tracing (shows reason for failures)
  • 2 to enable tracing of WebDAV requests.
  • 4 to enable detailed debugging
  • 8 to enable memory usage information
  • 16 to enable very detailed filesystem level tracing
The bits can be combined e.g. 17 will enable detailed filesystem tracing and error reporting. Trace information is output to the web server error log.

If you have experience, then another tool that can be very useful in debugging is a network protocol analyser, such as wireshark.

Configuring FilesysVirtualPlugin

Refer to the documentation for FilesysVirtualPlugin for information on configuring it to support different data views. Each data view presents topics as a different file type, allowing you to read and write the same topic in a range of different formats.


There are many DAV clients out there that it would be impossible to describe them all.

Linking to DAV resources from a web browser

To link to a DAV resource from a web browser, all you have to do is link to the DAV url of the resource. However most browsers will open the link in a "read only" mode. If you want to open DAV resources from Firefox or Internet Explorer for editing using a DAV-aware native application (such as Microsoft Word or Open Office) you can use the companion WebDAVLinkPlugin.

Accessing WebDAV resources on Microsoft Windows

There are so many problems with the Microsoft implementation of WebDAV that unfortunately it merits a topic of it's own: WebDAVAndWindowsClient


The otherwise excellent LibreOffice suite has implemented locking since version 4.1. Unfortunately their lock implementation is not consistent with the WebDAV spec, and we have had to disable lock support for LibreOffice. The only risk this poses is if two people try to edit the same attachment via WebDAV simultaneously.

Server Validation

All the standard Litmus tests for a class 2 WebDAV server pass. WebDAVContribLitmusTests describes how to run them.


This software is released under the GNU Public License, version 2. However it cost a lot in blood, sweat and tears to develop, and you are respectfully asked to use only copies you have obtained directly from http://c-dot.co.uk. By doing so you not only gain direct access to the support of the most experienced Foswiki developers working on the project, but you are also helping to make the further development of open-source Foswiki possible.


Another great Foswiki extension from the WikiRing - working together to improve your wiki experience!

Many thanks to the following sponsors for supporting this work:

Author(s): Crawford Currie http://c-dot.co.uk
Copyright: © 2008 KontextWork.de, © 2008-2014 Crawford Currie http://c-dot.co.uk
License: GPL2 (Gnu General Public License v2)
Release: maZdMr3dh0vZ1xA9KGyyqA
Version: 2.0.1
Change History:  
File::Spec>=0Required, standard perl module
XML::LibXML>=1.64Required, standard perl module
MIME::Base64>=0Optional, required for HTTP::Daemon
UUID::Tiny>=0Optional, required for HTTP::Daemon
HTTP::Daemon>=0Optional, required for HTTP::Daemon
HTTP::Status>=0Optional, required for HTTP::Daemon
APR::Table>=0Optional, required for Apache mod_perl
APR::UUID>=0Optional, required for Apache mod_perl
Apache2::Access>=0Optional, required for Apache mod_perl
Apache2::Const>=0Optional, required for Apache mod_perl
Apache2::Module>=0Optional, required for Apache mod_perl
Apache2::RequestIO>=0Optional, required for Apache mod_perl
Apache2::RequestRec>=0Optional, required for Apache mod_perl

Topic revision: r1 - 23 Dec 2012, ProjectContributor

This site is powered by FoswikiCopyright & by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding Network Time Foundation Community Wiki? Send feedback