HowTo: WebDAV und Plesk 9

HowTo: WebDAV und Plesk 9

Zwar unterstützt Plesk 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.

[UPDATE 10. August]
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 dem 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

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"

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

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

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"

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

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.

Werbung


14 Gedanken zu “HowTo: WebDAV und Plesk 9”

  1. das war eine wichtige info für mich! danke.
    das rewriteengine habe ich abgeschaltet und schon konnte ich ordner anlegen und die fehlermeldung („cannot create…“)erscheint auch nicht mehr…

    alllerdings fehlt mir zu meinen glück noch was: ich kann keine files oder ordner löschen :)

    hast du da noch einen tip?? wäre echt dankbar!
    gruss
    marolu

    ps. warum sammelt ihr alle mailadressen mit euren mailformular??

  2. ich habe jetzt zwei webserver mit plesk so eingerichtet, beim ersten hats super funktioniert (Debian).

    beim zweiten (Ubuntu) war noch folgendes nötig:
    ln -s /etc/apache2/mods-available/dav_fs.conf /etc/apache2/mods-enabled/dav_fs.conf
    ln -s /etc/apache2/mods-available/dav_lock.load /etc/apache2/mods-enabled/dav_lock.load

  3. Hi,
    bis Punkt 2 komme ich, scheitere dann aber an:
    […]
    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

    […]

    Denn /etc/apache2/mods-available gibt es bei mir nicht. Hab ein openSuse 11.1.

    Hat jemand eine Idee?

    • Du kannst versuchen, statt die Symlinks anzulegen einfach folgende zwei Befehle auszuführen:

      $ a2enmod dav
      $ a2enmod dav_fs

      Dann sollte es auch keine Rolle spielen, dass es das Verzeichnis mods-available nicht gibt.

      • Hi,
        das habe ich getan, die beiden Einträge werden dann auch eingebunden.
        Jetzt weiss ich nur nicht wie ich mir lockdb weitermache. ich muss doch in dav_fs.conf etwas eintragen. Das gibt es aber nicht.

        Was kann ich tun?

        • Vielleicht kannst du mal probieren was auf http://en.opensuse.org/Webdav vorgeschlagen wird. Also die Datei [i]/etc/apache2/conf.d/dav.conf[/i] anlegen und in diese dann [i]DAVLockDB „/var/lock/dav/lockdb“[/i] eintragen.

          Falls das nicht funktioniert, gibt es das Verzeichnis /etc/apache2/mods-enabled/ ? Falls ja, könntest du dort einfach eine Datei namens dav_fs.conf anlegen und dort dann den Verweis auf die LockDB eintragen.

  4. Alles super, lesen klappt einwandfrei.
    da ich suse habe, habe ich den user www in wwwrun unbenannt. ich habe zwar volle leserechte aber keine schreibrechte und verzweifel langsam…

    hast du da einen tip?

  5. Danke hat alles super geklappt. Hat jemand auch einen passwortgeschützten Zugriff auf das ganze httpdocs Verzeichnis realisiert? Denn dann funktioniert der Weg über die Passwortgeschützten Verzeichnisse ja nicht mehr.
    Ich möchte aber trotzdem Passwortgeschützt zugreifen können aber natürlich nur über webdav und nicht für für die WWW user.

  6. Hallo,

    erstmal Danke für das super erklärte tut. :)

    ich habe aber trotzdem ein kleines Problem. Er sagt mir jetzt an wenn ich über sunbird ein kalender hochladen will. Das das Zertifikat nicht akzeptiert wird weil es selber unterschrieben wurde. Und im Error-Log steht folgendes:
    [Tue Mar 15 22:54:26 2011] [warn] RSA server certificate CommonName (CN) `Parallels Panel‘ does NOT match server name!?

    Mercy
    Jens

  7. Ich habe es wie in der Anleitung gemacht, bekomme aber, nachdem ich mich einloggen will folgenden Fehler:

    Could not access /webdav/ (not WebDAV-enabled?):
    405 Method Not Allowed
    Connection to `quickbits.de‘ closed.

    Wer kann mir helfen?

Schreibe einen Kommentar