Wie man WebDAV mit Lighttpd auf Debian 8 installiert (Jessie)

Dieser Leitfaden erklärt, wie man WebDAV mit Lighttpd auf einem Debian 8 (Jessie)-Server einrichtet. WebDAV steht für Web-based Distributed Authoring and Versioning und ist eine Reihe von Erweiterungen des HTTP-Protokolls, die es Benutzern ermöglichen, Dateien auf dem Lighttpdd-Server direkt zu bearbeiten, so dass sie nicht über FTP herunter- oder hochgeladen werden müssen. Natürlich kann WebDAV auch zum Hoch- und Herunterladen von Dateien verwendet werden.

1 Vorbemerkung

Ich verwende hier einen Debian-8-Server mit der IP-Adresse 192.168.1.100. Meine Einrichtung basiert auf dem Debian-Minimal-Server-Tutorial, aber jedes Debian-System, auf dem noch kein Web-Server läuft, sollte in Ordnung sein.

2 WebDAV installieren

Sie können lighttpd (falls es nicht bereits installiert ist), das lighttpd WebDAV-Modul und das apache2-utils-Paket (das das Tool htpasswd enthält, das wir später benötigen, um eine Passwortdatei für die WebDAV-Freigabe zu generieren) wie folgt installieren:

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

Danach müssen wir sicherstellen, dass das Verzeichnis /var/run/lighttpd dem Benutzer und der Gruppe www-data gehört. Dieses Verzeichnis wird eine SQLite-Datenbank enthalten, die von WebDAV benötigt wird:

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

Als nächstes aktivieren wir die Module mod_auth und mod_webdav:

lighty-enable-mod auth
lighty-enable-mod webdav

Laden Sie anschließend Lighttpd neu:

service lighttpd force-reload

3 Erstellen eines virtuellen Hosts

Ich werde nun einen Lighttpd vhost (www.example.com) im Verzeichnis /var/www/web1/web erstellen. Wenn Sie bereits einen vhost haben, für den Sie WebDAV aktivieren möchten, müssen Sie dieses Tutorial an Ihre Situation anpassen.

Zuerst erstellen wir das Verzeichnis /var/www/web1/web und machen den lighttpd-Benutzer (www-data) zum Eigentümer dieses Verzeichnisses:

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

Dann öffnen wir /etc/lighttpd/lighttpd.conf und fügen den folgenden vhost am Ende der Datei hinzu:

nano /etc/lighttpd/lighttpd.conf
[...]
$HTTP["host"] == "www.example.com" {
  server.document-root = "/var/www/web1/web"
}

Danach starten wir lighttpd neu:

service lighttpd restart

4 Konfigurieren Sie den virtuellen Host für WebDAV

Nun erstellen wir die WebDAV-Passwortdatei /var/www/web1/passwd.dav mit dem Benutzertest (der Schalter -c erzeugt die Datei, falls sie nicht existiert):

htpasswd -c /var/www/web1/passwd.dav test

Sie werden gebeten, ein Passwort für den Benutzertest einzugeben.

(Bitte benutzen Sie den Schalter -c nicht, wenn /var/www/web1/passwd.dav bereits existiert, weil dadurch die Datei von Grund auf neu erstellt wird, was bedeutet, dass Sie alle Benutzer in dieser Datei verlieren!)

Jetzt ändern wir die Berechtigungen der Datei /var/www/web1/passwd.dav so, dass nur root und die Mitglieder der Gruppe www-data darauf zugreifen können:

chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav

Nun modifizieren wir unseren vhost in /etc/lighttpd/lighttpd.conf, so dass er wie folgt aussieht:

nano /etc/lighttpd/lighttpd.conf
$HTTP["host"] == "www.example.com" {
  server.document-root = "/var/www/web1/web"
  alias.url = ( "/webdav" => "/var/www/web1/web" )
  $HTTP["url"] =~ "^/webdav($|/)" {
    webdav.activate = "enable"
    webdav.is-readonly = "disable"
    dir-listing.activate = "enable"
    webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
    auth.backend = "htpasswd"
    auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav"
    auth.require = ( "" => ( "method" => "basic",
                             "realm" => "webdav",
                             "require" => "valid-user" ) )
  }
}

Die Direktive alias.url bewirkt (zusammen mit $HTTP[„url“] =~ „^/webdav($|/)“), dass beim Aufruf von /webdav WebDAV aufgerufen wird, Sie aber immer noch auf den gesamten Dokumentenstamm des vhost zugreifen können. Alle anderen URLs dieses vhost sind immer noch „normales“ HTTP.

Starten Sie anschließend Lighttpd neu:

service lighttpd restart

5 Testen von WebDAV

Wir werden jetzt cadaver, einen WebDAV-Client für die Befehlszeile, installieren:

apt-get -y install cadaver

Um zu testen, ob WebDAV funktioniert, geben Sie ein:

cadaver http://www.example.com/webdav/

Sie sollten zur Eingabe des Benutzernamens aufgefordert werden. Geben Sie test und dann das Passwort für den Benutzertest ein. Wenn alles gut geht, sollte Ihnen der Zugang gewährt werden, was bedeutet, dass WebDAV gut funktioniert. Geben Sie quit ein, um die WebDAV-Shell zu verlassen:

[email protected]:/home/administrator# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
[email protected]:/home/administrator#

6 Links

Das könnte dich auch interessieren …