Wie man WebDAV mit Apache2 auf Debian Etch aufsetzt

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man WebDAV mit Apache2 auf einem Debian Etch Server aufsetzt. WebDAV steht für Web-based Distributed Authoring and Versioning und ist ein Satz von Erweiterungen des HTTP Protokolls, das Benutzern erlaubt, Dateien direkt auf dem Apache Server zu bearbeiten, damit sie nicht via FTP runter/hoch geladen werden müssen. Natürlich kann WebDAV auch zum Hoch- und Runterladen von Dateien verwendet werden.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

Ich verwende hier einen Debian Etch Server mit der IP Adresse 192.168.0.100.

2 Installation von WebDAV

Falls Apache noch nicht installiert sein sollte, dann installiere es bitte jetzt wie folgt:

apt-get install apache2

Aktiviere danach die WebDAV Module:

a2enmod dav_fs
a2enmod dav

Lade Apache neu:

/etc/init.d/apache2 force-reload


3 Einen virtuellen Host erstellen

Ich werde nun im Verzeichnis /var/www/web1/web einen Standard Apache vhost erstellen. Aus diesem Grund modifiziere ich die Standard Apache vhost Konfiguration in /etc/apache2/sites-available/default. Falls Du bereits einen vhost hast, für den Du WebDAV aktivieren möchtest, dann passe diese Anleitung gemäß Deiner Ausgangssituation an.

Zunächst erstellen wir das Verzeichnis /var/www/web1/web und machen den Apache Benutzer (www-data) zum Besitzer dieses Verzeichnisses:

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

Dann sichern wir die Standard Apache vhost Konfiguration (/etc/apache2/sites-available/default) und erstellen unsere eigene:

mv /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig
vi /etc/apache2/sites-available/default

NameVirtualHost *
<VirtualHost *> ServerAdmin webmaster@localhost DocumentRoot /var/www/web1/web/ <Directory /var/www/web1/web/> Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
Lade Apache dann neu:

/etc/init.d/apache2 reload


4 Konfiguriere den virtuellen Host für WebDAV

Nun erstellen wir die WebDAV Passwort-Datei /var/www/web1/passwd.dav mit dem Benutzer test (die -c Option erstellt die Datei, falls sie nicht existiert):

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

Du wirst gebeten, ein Passwort für den Benutzer test einzugeben.

Später werden wir die URL http://192.168.0.100/webdav verwenden, um uns mit WebDAV zu verbinden. Wenn Du dies auf einem Windows XP Client ausführst und den Benutzernamen test eingibst, übersetzt Windows dies mit 192.168.0.100test. Daher erstellen wir jetzt ein zweites Benutzerkonto (ohne -c Option, da die Passwort-Datei bereits vorhanden ist):

htpasswd /var/www/web1/passwd.dav 192.168.0.100test

(Wir müssen hier im Benutzernamen einen zweiten Backslash verwenden, um den ersten zu escapen!)

Nun ändern wir die Berechtigungen der /var/www/web1/passwd.dav Datei, damit nur root und die Mitglieder der www-data Gruppe 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/apache2/sites-available/default und fügen folgende Zeilen hinzu:

vi /etc/apache2/sites-available/default


[...]
Alias /webdav /var/www/web1/web <Location /webdav> DAV On AuthType Basic AuthName "webdav" AuthUserFile /var/www/web1/passwd.dav Require valid-user </Location> [...]
Die Alias Dirktive bewirkt (zusammen mit <Location>), dass wenn Du /webdav aufrufst, WebDAV abgerufen wird. Du kannst aber immer noch auf den gesamten Dokumenten Root des vhosts zugreifen. Alle anderen URLs dieses vhosts sind immer noch "normales" HTTP.

Der endgültige vhost sollte wie folgt aussehen:
NameVirtualHost *
<VirtualHost *> ServerAdmin webmaster@localhost DocumentRoot /var/www/web1/web/ <Directory /var/www/web1/web/> Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias /webdav /var/www/web1/web <Location /webdav> DAV On AuthType Basic AuthName "webdav" AuthUserFile /var/www/web1/passwd.dav Require valid-user </Location> </VirtualHost>
Lade Apache danach neu:

/etc/init.d/apache2 reload


5 WebDAV testen

Nun werden wir cadaver installieren, ein Kommandozeilen-WebDAV Client:

apt-get install cadaver

Um zu testen, ob WebDAV funktioniert, gib Folgendes ein:

cadaver http://localhost/webdav/

Du müsstest nach einem Benutzernamen gefragt werden. Gib test und dann das Passwort für den Benutzer test ein. Wenn alles klappt, sollte Dir Zugriff gewährt werden, was bedeutet, dass WebDAV gut funktioniert. Gib quit ein um die WebDAV Kommandozeile zu verlassen:

server1:~# cadaver http://localhost/webdav/
Authentication required for test on server `localhost':
Username: test
Password:
dav:/webdav/> quit
Connection to `localhost' closed.
server1:~#

6 Konfiguration eines Windows XP Client um Dich mit der WebDAV Freigabe zu verbinden zu können

Laut http://www.heise.de/netze/WebDAV-mit-Apache--/artikel/77605/3 (auf Deutsch!) unterstützen Windows XP Clients mit SP2 in Verbindung mit WebDAV keine Basic Authentifizierung, es sei denn Du lädst diese Datei runter und verbesserst die Windows Registrierung: ftp://ftp.heise.de/pub/ct/listings/0504-202.zip
Die Datei beinhaltet eine .reg Datei. Klicke (Doppelklick) darauf um sie zu installieren. Starte dann Windows neu.

Klicke nach dem Neustart auf Netzwerkumgebung auf Deinem Desktop:


Wähle Netzwerkressource hinzufügen im Netzwerkaufgaben Menü (auf der linken Seite):


Der Assitent zum Hinzufügen von Netzwerkressourcen Wizard erscheint. Klicke auf das Weiter Feld:


Wähle Eine andere Netzwerkressource auswählen und klicke auf Weiter:


0 Kommentar(e)

Zum Posten von Kommentaren bitte