How To Set Up WebDAV With Lighttpd On Debian Etch

Version 1.0
Author: Falko Timme

This guide explains how to set up WebDAV with lighttpd on a Debian Etch server. WebDAV stands for Web-based Distributed Authoring and Versioning and is a set of extensions to the HTTP protocol that allow users to directly edit files on the lighttpd server so that they do not need to be downloaded/uploaded via FTP. Of course, WebDAV can also be used to upload and download files.

I do not issue any guarantee that this will work for you!


1 Preliminary Note

I'm using a Debian Etch server with the IP address here.


2 Installing WebDAV

You can install lighttpd (if it's not already installed), the lighttpd WebDAV module and the apache2-utils package (which contains the tool htpasswd which we will need later on to generate a password file for the WebDAV share) as follows:

apt-get install lighttpd lighttpd-mod-webdav apache2-utils

Afterwards, create the directory /var/run/lighttpd and make it owned by the www-data user and group. This directory will contain an SQLite database needed by WebDAV:

mkdir /var/run/lighttpd/
chown www-data:www-data /var/run/lighttpd/

Next, we enable the module mod_auth:

lighty-enable-mod auth

... and open /etc/lighttpd/lighttpd.conf to make sure that the modules mod_alias and mod_webdav are enabled in the server.modules stanza:

vi /etc/lighttpd/lighttpd.conf

server.modules              = (
#           "mod_rewrite",
#           "mod_redirect",
#           "mod_status",
#           "mod_evhost",
#           "mod_compress",
#           "mod_usertrack",
#           "mod_rrdtool",
#           "mod_expire",
#           "mod_flv_streaming",
#           "mod_evasive"

Restart lighttpd afterwards:

/etc/init.d/lighttpd restart


3 Creating A Virtual Host

I will now create a lighttpd vhost ( in the directory /var/www/web1/web. If you already have a vhost for which you'd like to enable WebDAV, you must adjust this tutorial to your situation.

First, we create the directory /var/www/web1/web and make the lighttpd user (www-data) the owner of that directory:

mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web

Then we open /etc/lighttpd/lighttpd.conf and add the following vhost to the end of the file:

vi /etc/lighttpd/lighttpd.conf

$HTTP["host"] == "" {
  server.document-root = "/var/www/web1/web"

Afterwards we restart lighttpd:

/etc/init.d/lighttpd restart

Share this page:

0 Comment(s)

Add comment


From: falko