info@a-coding-project.de

WebDAV-Konfiguration im Apache-Webserver

Um WebDAV verwenden zu können benötigt man einen entsprechend konfigurierten Webserver. Der Apache-Webserver, als einer der meistgenutzen, bietet hierfür bereits die Voraussetzungen und kann leicht auf die Verwendung von WebDAV angepasst werden.

Download und Installation des Webservers

Der Webserver kann in verschiedenen Versionen für alle unterstützten Betriebssysteme unter folgender Internet-Adresse heruntergeladen werden: http://httpd.apache.org/download.cgi

Da die Installation des Webservers für WebDAV keine große Relevanz hat, wird im folgenden nur auf die wichtigsten Punkte eingegangen, die dabei beachtet werden sollten.

Eintragen von Server-Informationen

Bei den Serverinformationen Domain, Servername und Email-Adresse müssen keine Angaben gemacht werden. In der Konfigurationsdatei des Servers können die Informationen auch im Nachhinein ergänzt werden. Der Server kann trotzdem betrieben werden, wenn die Details nicht vorhanden sind. Der Empfehlung, dass der Server am Port 80 betrieben werden soll, sollte man Folge leisten, denn das ist der allgemein bekannte und gültige HTTP-Port.

Apache-Installation Teil 1
Darstellung: Apache-Installation Teil 1

Auswahl des Server-Verzeichnisses

Für WebDAV und den Betrieb des Servers ist es unwichtig, in welchem Verzeichnis der Server installiert wird. Dafür gibt es keine Empfehlung und der angegebene Pfad ist auch nur eine Empfehlung. Insofern gilt hier das Prinzip der freien Auswahl.

Apache-Installation Teil 2
Darstellung: Apache-Installation Teil 2

Test der Installation

Nach Beendigung der Installation wird der Webserver automatisch als Service eingerichtet und gestartet. Geben Sie in der Adresszeile im Browser "http://localhost" ein. Wenn alles geklappt hat, erscheint eine Seite, die mit der Meldung "Es klappt! Der Apache-Webserver ist auf dieser Website installiert!" beginnt.

Konfiguration im Apache 2.x

Die Änderungen, die im folgenden beschrieben werden, finden alle in der Konfigurationsdatei des Apache statt. Damit der Server die Änderungen interpretiert, muss er neu gestartet werden. Es beeinflusst den Serverbetrieb nicht, wenn an der Konfigurationsdatei gearbeitet wird. Insofern reicht es aus, zuerst die Aktualisierung durchzuführen und den Server danach neu zu starten.
Es empfiehlt sich auf jeden Fall vorher eine Sicherung der Konfigurationsdatei anzulegen, um im Fehlerfall die Ausfalldauer möglichst gering zu halten.

Freischalten der WebDAV-Module

Die notwendigen Apache-Module werden im Normalfall schon mitgeliefert. Für WebDAV werden die folgenden Module benötigt:

mod_dav
mod_dav_fs

Um die Konfigurationsdatei httpd.conf des Apache zu erreichen, gibt es abhängig vom Betriebssystem unterschiedliche Möglichkeiten:
Unter Windows wählen Sie einfach aus dem Startmenü den entsprechenden Eintrag. Diesen finden Sie über folgenden Weg: Start / Programme / Apache HTTP Server xxx / Configure Apache Server / Edit Configuration File
Unter Linux ist das ganze etwas komplizierter: Hier öffnen Sie die Konfigurationsdatei aus dem Verzeichnis /etc/apache2 mit einem einfachen Texteditor.

In beiden Fällen finden Sie in der Rubrik "Dynamic Shared Object (DSO) Support" der Konfigurationsdatei httpd.conf des Webservers die folgenden Zeilen:

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

Jetzt muss das "#"-Zeichen am Anfang der beiden Zeilen entfernt werden damit die Einstellungen greifen. Damit ist WebDAV eigentlich eingerichtet. Noch kurz den Webserver neu gestartet und es kann losgehen.

Anlegen der Lock-Datenbank

Es kann auf jeden Fall die Situation auftreten, dass zwei Nutzer gleichzeitig auf die gleiche Ressource zugreifen. Wenn das in beiden Fällen mit Schreibzugriff passiert, kann es zu Datenverlust kommen. Damit dieser Fall nicht auftritt, wird eine Ressource sobald ein Zugriff erfolgt für weitere User gesperrt. Diese Sperren werden in einer Datenbank angelegt, die u.a. vom Modul mod_dav_fs zur Verfügung gestellt wird.
Durch den folgenden Eintrag in der httpd.conf wird die Lock-Datenbank angelegt:

DavLockDB conf/DavLock

Folgende Punkte sollten dabei beachtet werden:

  • Groß- und Kleinschreibung sind bei dem Eintrag zu beachten.
  • Das angegebene Vezeichnis gilt immer relativ zum Root-Verzeichnis des Servers.
  • Speziell bei Linux ist zu beachten, dass der User unter dem der Webserver läuft, Lese- und Schreibrechte auf das Verzeichnis hat.
Hinweis: In der httpd.conf gibt es den Eintrag "ServerRoot". Dort ist das Root-Verzeichnis hinterlegt. Im Beispiel ist das Root-Verzeichnis " D:/Programme/Apache Group/Apache2". Damit wird die Lock-Datenbank im Verzeichnis " D:/Programme/Apache Group/Apache2/conf/DavLock" angelegt.

Um das Anlegen der Datenbank zu prüfen, kann man einen Blick ins angegebene Verzeichnis werfen. Wenn nach dem Neustart des Servers die Dateien "DavLock.dir" und "DavLock.pag" vorhanden sind, hat alles geklappt.

Freigeben des WebDAV-Ordners

Standardmäßig werden alle Dateien, die ein Webserver zur Verfügung stellen kann, im Verzeichnis htdocs unterhalb des Root-Verzeichnis hinterlegt. Für WebDAV bietet sich an, einen Ordner außerhalb dieses Verzeichnisses zu wählen, da es Sinn macht, zwei unterschiedliche Aufgaben (Webeiten bereitstellen und Dateien speichern) voneinander zu trennen.
Geht man davon aus, dass die WebDAV-Daten außerhalb hinterlegt werden sollen, muss noch ein separates Verzeichnis angelegt werden. Auch hier ist speziell bei Linux zu beachten, dass der User des Webservers Lese- und Schreibrechte auf das Verzeichnis hat.
Hat man das Verzeichnis angelegt, wird in der httpd.conf folgende Zeile eingetragen:

Alias /files "D:/Webdav"

Damit wird ein virtuelles Verzeichnis /files angelegt, welches beim Aufruf im Browser durch den Alias-Parameter auf das Verzeichnis Webdav zugreift, welches im Laufwerk D angelegt wurde. Damit ist ein Zugriff auf das WebDAV-Verzeichnis über die URL "http://Servername/files" möglich.

Anlegen der WebDAV-Sektion in Konfigurationsdatei

Nachdem man die obigen Informationen in die httpd.conf-Datei eingetragen hat, muss man für das WebDAV-Laufwerk eine eigene Sektion anlegen. Dies kann man einfach am Ende der Datei machen. Eine bestimmte Stelle ist dazu nicht notwendig. Die Sektion wird durch den folgenden Eintrag definitiert:

<Directory "D:/Webdav">
 ...
</Directory>

Eine Alternative zu <directory> ist die <Alias>-Direktive. Beide Varianten sind gleichwertig, weshalb es keinen praktischen Unterschied macht, welche man verwendet. Bei der <Alias>-Direktive gibt man nicht das freigegebene Verzeichnis, sondern den virtuellen Pfad an. (Beispiel: <Alias /files>).

Aktivieren von WebDAV

Innerhalb der <directory>-Direktive muss WebDAV allgemein aktiviert werden. Dies geschieht durch den Eintrag:

Dav on 

Ausführen von Skripten verhindern

Wenn im WebDAV-Verzeichnis im Brower zum Beispiel eine PHP-Datei aufgerufen wird, wird diese ausgeführt und die Ausgabe des Skriptes angezeigt. In diesem Fall ist das aber nicht der gewünschte Effekt. Um das Ausführen von Skriptdateien zu verhindern, muss folgende Zeile innerhalb der <directory>-Direktive eingetragen werden:

ForceType text/plain

Anzeige des Verzeichnis-Inhaltes

Würde jetzt im Browser der Inhalt des WebDAV-Verzeichnisses aufgerufen werden, gäbe es eine Fehlermeldung. Es ist verständlich, wenn man aus Sicherheitsgründen den Inhalt nicht im Browserfenster anzeigen lassen möchte, aber falls das doch geschehen soll, muss in die httpd.conf noch die folgende Zeile eingefügt werden:

Options Indexes

Damit ist WebDAV für den Apache Webserver grundsätzlich konfiguriert. Zum Abschluß werden die notwendigen Ergänzungen in der Konfigurationsdatei in einem Beispiel zusammengefasst.

# Adding WebDAV-Support

# Adding Entry for Lock database
DavLockDB conf/DavLock

# Release WebDav-Paths
Alias /files "D:/Webdav"

<Directory "D:/Webdav">
Dav on
ForceType text/plain
Options Indexes
</Directory>

Hinweise zum Apache 1.3.x

Bei manchen Linux-Distributionen wie zum Beispiel Debian muss bei dieser Server-Version das Modul mod_dav separat installiert werden. Dies geschieht dann über ein eigenes Paket, nicht über einen separaten Download im Internet.
Bei der Konfiguration von WebDAV gibt es keinen wesentlichen Unterschied zur Version 2.0. Der einzige relevante Punkt ist, dass es noch kein separates mod_dav_fs-Modul gibt. Die Funktionen dieses Moduls ist hier noch im mod_dav-Modul integriert.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant