Verwendung von WebDAV mit ISPConfig3

Autor: Alexander Fox <howtoforge [at] planetfox.de [dot] de>

Create: 15/03/10

Version 1.0

Folge mir auf Twitter

Orginal: Falko Timme

Dieses Howto beschreibt wie man WebDav auf einer Webseite nutzen kann, die mit ISPConfig3 auf einem Debian Lenny Server erstellt worden ist. WebDav (Web-based Distributed) ist ein offener Standard zur Bereitstellung von Dateien im Internet. Dabei können Benutzer auf ihre Daten wie auf einer online Festplatte zugreifen. Mit WebDav können ganze Verzeichnisse übertragen werden. Zudem ist eine Versionskontrolle spezifiziert. WebDav ist eine Erweiterung des HTTP/1.1 Protokolls, die bestimmte Einschränkungen von HTTP aufhebt.Man kann die Dateien direkt auf dem Webserver bearbeiten ohne Download und Upload mit FTP.

Ich gebe keine Garantie dass diese HowTo genauso auch bei Dir funktioniert – so funktioniert es bei mir.

1.Schritt

Ich verwende einen Debian Lenny Server mit dem Hostnamen server1.example.com hier. Wir müssen alle Schritte in diesem Howto als root ausführen. Dazu werden wir mittels su zu root

su

Ich gehe davon aus das Ihr bereits ISPConfig3 auf dem Server Installiert habt, falls nicht findet Ihr hier das HowTo zu einer ISPConfig 3 Installation. Ich möchte für die Webseite www.example.com (diese wurde mit ISPConfig3 erstellt), die im Dokument Rootordner /var/www/clients/client1/web1/web (oder /var/www/example.com/web mit Symlink auf /var/www/clients/client1/web1/web ) zu finden ist, WebDav nutzen.

Die aktuelle vhost Konfiguration sieht derzeit so aus:

cat /etc/apache2/sites-available/example.com.vhost

<Directory /var/www/example.com>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

<VirtualHost *:80>
      DocumentRoot /var/www/example.com/web

    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com

    ErrorLog /var/log/ispconfig/httpd/example.com/error.log

    ErrorDocument 400 /error/400.html
    ErrorDocument 401 /error/401.html
    ErrorDocument 403 /error/403.html
    ErrorDocument 404 /error/404.html
    ErrorDocument 405 /error/405.html
    ErrorDocument 500 /error/500.html
    ErrorDocument 503 /error/503.html

    <Directory /var/www/example.com/web>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    <Directory /var/www/clients/client1/web1/web>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    # mod_php enabled
    AddType application/x-httpd-php .php .php3 .php4 .php5
    php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@example.com"
    php_admin_value upload_tmp_dir /var/www/clients/client1/web1/tmp
    php_admin_value session.save_path /var/www/clients/client1/web1/tmp
    php_admin_value open_basedir /var/www/clients/client1/web1/web:/var/www/clients/client1/web1/tmp:/usr/share/php5

</VirtualHost>

2. Aktiviere WebDav

Wir können mit folgenden Befehlen WebDav auf dem Server aktivieren:

a2enmod dav_fs
a2enmod dav

Nun startet ihr den Apache2 Webserver neu

/etc/init.d/apache2 restart

3. Konfiguriere den Virtual Host für WebDav

Wir erstellen die WebDav Passwort Datei in /var/www/clients/client1/web1/passwd.dav mit dem User test (dsa -c steht für create, also erstelle die Datei wenn sie nicht existiert)

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

Du  wirst vom System gebeten ein Passwort für den User test einzugeben:

(bitte nutze -c nicht wenn /var/www/clients/client1/web1/passwd.dav schon existiert, ansonsten wird die Datei neu erstellt und Du verlierst alle alten bestehenden User)

Nun ändern wir die Berechtigungen für die Datei /var/www/clients/client1/web1/passwd.dav damit nur noch root und die usergruppe www-data darauf zugreifen können.

chown root:www-data /var/www/clients/client1/web1/passwd.dav

chmod 640 /var/www/clients/client1/web1/passwd.dav

Nun loggen wir uns im ISPConfig3 System unseres Servers ein und gehen auf der Option Tab in der Webseite www.example.com. Danach fügen wir folgende Daten hinzu:

<Directory /var/www/clients/client1/web1/web>

Options +Indexes +MultiViews

</Directory>

Alias /webdav /var/www/clients/client1/web1/web

<Location /webdav>

DAV On

AuthType Basic

AuthName „webdav“

AuthUserFile /var/www/clients/client1/web1/passwd.dav

Require valid-user

</Location>

Die alias directive erstellt einen alias auf /webdav, Du kannst auf Dokumente im Rootverzeichnis des vhost zugreifen. Alle anderen URLs des vhosts werden normal über HTTP behandelt.

Nach einiger Zeit (ISPConfig 3 muss die vhost Datei neu schreiben), sollte der vhost so aussehen:

<Directory /var/www/example.com>

AllowOverride None

Order Deny,Allow

Deny from all

</Directory>

<VirtualHost *:80>

DocumentRoot /var/www/example.com/web

ServerName example.com

ServerAlias www.example.com

ServerAdmin webmaster@example.com

ErrorLog /var/log/ispconfig/httpd/example.com/error.log

ErrorDocument 400 /error/400.html

ErrorDocument 401 /error/401.html

ErrorDocument 403 /error/403.html

ErrorDocument 404 /error/404.html

ErrorDocument 405 /error/405.html

ErrorDocument 500 /error/500.html

ErrorDocument 503 /error/503.html

<Directory /var/www/example.com/web>

Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<Directory /var/www/clients/client1/web1/web>

Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

# mod_php enabled

AddType application/x-httpd-php .php .php3 .php4 .php5

php_admin_value sendmail_path „/usr/sbin/sendmail -t -i -fwebmaster@example.com“

php_admin_value upload_tmp_dir /var/www/clients/client1/web1/tmp

php_admin_value session.save_path /var/www/clients/client1/web1/tmp

php_admin_value open_basedir /var/www/clients/client1/web1/web:/var/www/clients/client1/web1/tmp:/usr/share/php5

<Directory /var/www/clients/client1/web1/web>

Options +Indexes +MultiViews

</Directory>

Alias /webdav /var/www/clients/client1/web1/web

<Location /webdav>

DAV On

AuthType Basic

AuthName „webdav“

AuthUserFile /var/www/clients/client1/web1/passwd.dav

Require valid-user

</Location>

</VirtualHost>

Aber mod_dav läuft mit den Rechten des Apache Users und der Gruppe ( www-data auf Debian ), wir müssen den Benutzer und die Gruppe von /var/www/clients/client1/web1/web auf www-data rekursiv setzen (anders hast Du keine Erlaubnis über WebDav Dateien und Ordnern  zu erstellen/editieren/löschen ). Daher ändern wir die Berechtigungen

chown -R www-data:www-data /var/www/clients/client1/web1/web

Bitte beachte dass es Probleme für PHP Dateien gibt, wenn Du PHP in diesem Web mit FASTCGI, CGI oder suExec laufen hast. Es ist aber kein Problem wenn du WebDav mit mod_php nutzt.

Du kannst nun WebDav nutzen im folgenden Howto ( https://www.howtoforge.de/howto/einrichtung-von-webdav-mit-apache2-auf-debian-lenny/2/ )von Falko findest du die Beschreibung zur Einrichtung unter Windows XP.

4.Links

Das könnte dich auch interessieren …