Verwendung von WebDAV mit ISPConfig3
Autor: Alexander Fox <howtoforge [at] planetfox.de [dot] de>
Create: 15/03/10
Version 1.0
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
- WebDAV: http://www.webdav.org/
- Apache: http://httpd.apache.org/
- Debian: http://www.debian.de
- ISPConfig: http://www.ispconfig.org/
- Orginal Howto: Howtoforge.com