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
- WebDAV: http://www.webdav.org/
- Lighttpd: http://www.lighttpd.net/
- Debian: http://www.debian.org/