VG Wort tracking pixel
cover picture
 – Server

HowTo: WebDAV und Plesk 9

Zwar unterstützt Plesk 9 offiziell kein WebDAV und bringt entsprechend auch keine Oberfläche zur Aktivierung und Administration mit. Dennoch geht die Einrichtung von WebDAV auch auf Servern mit Plesk und Apache2 schnell von der Hand.

1. Aktivieren des Apache-Moduls

Bevor man WebDAV benutzen kann, müssen zuerst einmal die beiden Module mod_dav und mod_davfs für den Apache2 aktiviert werden. Dazu gehe ich im folgenden von Ubuntu 8.04 LTS als zugrundeliegender Distribution aus, bei anderen Distributionen kann sich das Vorgehen stark unterscheiden.

Normalerweise müssten die beiden benötigten Mods schon mit dem Apache2 mitgeliefert werden, d.h.  es müssen keine neuen Pakete installiert werden.

Info

UPDATE 10. August 2009

Noch einfacher geht das ganz mit dem kleinen Tool a2enmod, welches zumindest bei mir schon mit den Apache2 Paketen installiert wurde. Es genügt einfach folgende 2 Befehle auszuführen und man spart sich das Anlegen von symbolischen Verknüpfungen (auch die in Schritt 2):

a2enmod dav
a2enmod dav_fs

Alle für Apache momentan verfügbaren Mods werden im Verzeichnis /etc/apache2/mods-available aufgelistet. Dort sollten sich auch die beiden Dateien dav.load und dav_fs.load finden lassen. Um diese nun zu aktivieren gilt es eine symbolische Verknüpfung zu ihnen im Verzeichnis /etc/apache2/mods-enabled anzulegen:

ln -s /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/dav.load
ln -s /etc/apache2/mods-available/dav_fs.load /etc/apache2/mods-enabled/dav_fs.load

Nachdem der Apache neu gestartet wurde, lädt er die beiden Module. Um das zu überprüfen kann man auf der Konsole apache2ctl -M eingeben, dort werden dann alle geladenen Module ausgegeben.

2. Anlegen der LockDB

Jetzt muss noch die sogenannte LockDB angelegt werden. Hierzu muss zuerst ein Verzeichnis angelegt und mit den richtigen Zugriffsrechten ausgestattet werden:

mkdir /var/lock/dav
chmod 755 /var/lock/dav
chown www-data /var/lock/dav

www-data ist dabei durch den Benutzer zu ersetzen unter dem Apache läuft und ist von Distribution zu Distribution unterschiedlich.

Nun muss der Ort der LockDB noch dem Apache mitgeteilt werden. Dazu öffnet man die Datei /etc/apache2/mods-available/dav_fs.conf bzw. legt sie an falls sie noch nicht existiert und schreibt folgendes hinein:

DAVLockDB "/var/lock/dav/lockdb"

lockdb bezeichnet dabei eine Datei die der Server selbst anlegt. Die Konfigurationsdatei muss jetzt wieder mit Hilfe eines Symlinks so verknüpft werden, dass sie beim Start des Servers berücksichtigt wird:

ln -s /etc/apache2/mods-available/dav_fs.conf /etc/apache2/mods-enabled/dav_fs.conf

3. Anlegen des WebDAV-Verzeichnisses

Nun sind alle Vorarbeiten abgeschlossen und es geht an die eigentliche Einrichtung des WebDAV-Verzeichnisses. Zuerst muss dabei wieder der Ordner selbst angelegt und mit den richtigen Zugriffsrechten ausgerichtet werden:

mkdir /var/www/vhosts/meinedomain.tld/httpdocs/webdav
chmod 755 /var/www/vhosts/meinedomain.tld/httpdocs/webdav
chown www-data /var/www/vhosts/meinedomain.tld/httpdocs/webdav

4. Konfiguration des Verzeichnisses

Die Konfiguration geschieht über die Datei vhost_ssl.conf unter /var/www/vhosts/meinedomain.tld/conf/ . In diese Datei gehört dabei mindestens folgende Angabe:

<Directory /var/www/vhosts/meinedomain.tld/httpdocs/webdav>
DAV on
</Directory>

Weitere sinnvolle Konfigurationsoptionen die nach “DAV on” eingefügten werden können sind zum Beispiel:

  • AllowOverride none Sorgt dafür, dass eine .htaccess im WebDAV-Verzeichnis nicht interpretiert wird.
  • RewriteEngine Off Sorgt dafür, dass etwaige Rewrite Rules nicht zur Anwendung kommen. Dies ist insbesondere dann sinnvoll, wenn WebDAV nicht funktioniert und im ErrorLog des Apache die Fehlermeldung “Cannot create collection; intermediate collection does not exist.” auftaucht.
  • ForceType text/plain Sorgt dafür, dass Skripte im WebDAV-Ordner nicht interpretiert werden.
  • Options Indexes Erlaubt das Auflisten des Verzeichnisinhalts.

5. Schutz des Verzeichnisses in Plesk 9

Jetzt funktioniert zwar WebDAV, aber jeder kann in das Verzeichnis schreiben, was natürlich möglichst vermieden werden sollte. Deshalb gilt es einen Verzeichnisschutz einzurichten, sodass nur nach Eingabe des richtigen Usernamens und Passworts ein Zugriff möglich ist. Am einfachsten lässt sich dies über Plesk selbst erledigen.

Hierzu ruft man in Plesk die Übersichtsseite für die jeweilige Domain auf und klickt dort auf Password Protected Directories (1):

Aufruf Password Protected Directories

Aufruf Password Protected Directories

Im zweiten Schritt muss dann Add Protected Directory angeklickt werden (2):

Aufruf Add Protected Directory

Aufruf Add Protected Directory

Auf der sich nun öffneten Seite muss das WebDAV-Verzeichnis eingeben werden und zwar relativ zum Order httpdocs der Domain. In unserem Fall muss also /webdav eingetragen werden (3). Dann heißt es nochmal auf OK klicken (3):

Angeben des zu schützenden Verzeichnisses

Angeben des zu schützenden Verzeichnisses

Nun wird man auf eine weitere Seite weitergeleitet. Hier gilt es nun einen neuen Benutzer für dieses Verzeichnis anzulegen. Wie zu vermuten sollte man dazu auf Add New User klicken (5):

Aufruf Add New User

Aufruf Add New User

Jetzt muss nur noch ein Username (1) und zweimal ein Passwort eingetragen werden (2):

Festlegen von Benutzername und Passwort

Festlegen von Benutzername und Passwort

Jetzt ist das Verzeichniss vor unbefugten Zugriff geschützt und wir können mit dem letzten Schritt weitermachen.

6. Neustart des Apache

Nun müssen die zahlreichen Konfigurationsänderungen noch Plesk respektive dem Apache2 mitgeteilt werden. Dazu dient folgender Befehl:

/usr/local/psa/admin/sbin/websrvmng -v -a

Jetzt sollte das Verzeichnis unter https://meinedomain.tld/webdav/ angesprochen werden können. Wer gerne testen möchte, ob alles klappt, dem sei cadaver empfohlen, ein kleiner WebDAV-Client für die Konsole.

Wenn es nicht klappt, dann ist oftmals ein Blick in das Fehlerprotokoll des Apache hilfreich. Dieses sollte sich bei Webservern mit Plesk üblicherweise unter /var/www/vhosts/meinedomain.tld/statistics/logs zu finden.

Hinweise

Besonderer Dank gilt an dieser Stelle Otto Berger der in seinem Blog bergercity.de bereits eine ähnliche Anleitung veröffentlicht hat, die mir beim experimentieren mit Plesk und WebDAV eine große Hilfe war.