Einrichtung von WebDAV mit Apache2 auf Debian Lenny

Einrichtung von WebDAV mit Apache2 auf Debian Lenny

Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>

Diese Anleitung zeigt, wie man WebDAV mit Apache2 auf einem Debian Lenny Server einrichtet. WebDAV steht für Web-based Distributed Authoring and Versioning und ist eine Reihe von Erweiterungen für das HTTP Protokoll welches den Benutzern das direkte editieren von Dateien auf dem Apache Server erlaubt so das sie die Datei nicht erstüber FTP runter-und hochladen müssen. Natürlich kann WebDAV auch benutzt werden um Dateien runter-  oder hoch zu laden.

Ich gebe keinerlei Garantie, das dies genauso bei euch funktioniert!

1 Vorwort

In diesem Beispiel, benutze ich Debian Lenny Server mit der IP-Adresse  192.168.0.100 .

2 Installation von WebDAV

Falls Apache noch nicht installiert ist, installiere es wie folgt:

aptitude install apache2

Anschließend, aktiviere die WebDAV Module:

a2enmod dav_fs
a2enmod dav

Starte Apache neu:

/etc/init.d/apache2 restart

3 Erstellen eines virtuellen Host

Ich werde nun einen Standard Apache vhost in dem Verzeichnis /var/www/web1/web erstellen.Dazu werde ich den die standard Apache vhost configuration in  /etc/apache2/sites-available/default modifizieren. Falls du schon einen vhost hast welchen du für WebDAV verwenden möchtest, musst du die Einstellungen in diesem Tutorial deiner Situation anpassen.

Als Erstes erstellen wir das Verzeichnis /var/www/web1/web und machen den Apache Benutzer (www-data) zum Eigentümer von dem Verzeichnis:

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

Dann machen wir ein Backup von den standard Apache vhost Einstellungen (/etc/apache2/sites-available/default) und erstellen unsere eigenen:

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>

Dann reload Apache:

/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 (das -c erstellt die Datei, falls sie noch nicht existiert):

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

Du wirst nach einem Passwort für den Benutzer test.

(Bette benutze nicht die -c Option, falls /var/www/web1/passwd.dav schon existiert, weil das wird die Datei von neuem Anlegen, das heißt, das du alle Benutzerdateien verlieren wirst!)

Nun ändern wir die Rechte von der /var/www/web1/passwd.dav Datei, sodass nur  root und die Mitglieder der www-data Gruppe Zugriff drauf haben:

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 2 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 Vorschrift macht (zusammen mit <Location>) das wenn du /webdav auftufst, WebDAV aktiviert ist, aber du dennoch vollen Zugriff auf das Dokument root vom vhost hast. Alle anderen URLs von dem vhost sind immernoch „normale“ HTTP.

Letzenendes sollte der vhost so ausschauenThe final vhost should look like this:

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>

Reload Apache anschließend:

/etc/init.d/apache2 reload

5 Teste WebDAV

Wir werden nun cadaver installieren, eine Kommandozeilen WebDAV klient:

aptitude install cadaver

Um zu testen ob WebDAV läuft, gib folgendes ein:

cadaver http://localhost/webdav/

Du solltest nach einem Benutzernamen aufgefordert werden. Gib test ein und dann das Passwort für den Benutzer test.Wenn alles gut verlaufen ist, solltest du Zugriff bekommen, was heißt, das WebDAV funtkioniert. Gib quit ein um die WebDAV Shell zu verlassen:

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

Das könnte dich auch interessieren …