Donedávna to byla pro mě Španělská vesnice. Jediné co jsem o tom věděl je to, že tímto způsobem funguje svn, že se jedná o prostý http protokol rozšířený o pár dalších metod nutných pro manipulaci se soubory a že informace jsou posílané jako xml dokument. Všechno je pěkně popsáno zde http://www.webdav.org/. Použití je velice snadné, protože client je v případě operačního systému Windows, jeho součástí a na systémech Linux si můžete vybrat z několika klientů, nehledě na to, že to funguje přímo v Konqueroru.
Protože jsme ve firmě potřebovali na jedné ze služeb zdostupnit část obsahu k editaci pro externího partnera a ftp se ukázalo jako nepoužitelné. Hledali jsme jiné řešení. Né že by to bylo nějaké revoluční a nové řešení. Ale samotného mě překvapilo, jak je to jednoduše nakonfigurovatelné. Proto bych se chtěl podělit o své zkušenosti. Jako webserver jsem použil Apache 2.2 (mod_dav) a Lighttpd (mod_webdav)
Pro Apache 2.2Pokud chceme mít obsah zaheslovaný, musíme mít pro Apache 2.2 natažené tyto moduly: mod_dav, mod_dav_fs, mod_authn_file, mod_auth_basic, mod_authz_user.
Možnosti jak to udělat jsou dvě. Buď přímo do httpd.conf přidáme
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so
Nebo zvolíme oficiální cestu a moduly přidáme přes.
a2enmod dav; a2enmod dav_fs; atd.
Předpokládám, že máte svůj web umístěn v adresáři /var/www/sites/mujweb/web na doméně www.mujweb.cz a přístup přes WebDav bude na doméně webdav.mujweb.cz . Pro zabezpečení přístupu použijeme htpasswd, soubor s hesly vytvoříme přes
htpasswd -c /var/www/sites/mujweb/htpasswd uziv_jmenoBuď do globální konfigurace apache, nebo do sekce věnované vašemu webíku přídame.
<VirtualHost *>
ServerName webdav.mujweb.cz
DavLockDB /var/www/sites/mujweb/lock
DocumentRoot /var/www/sites/mujweb/web
<Directory /var/www/sites/mujweb/web>
DAV On
AuthType Basic
AuthUserFile /var/www/sites/mujweb/htpasswd
AuthName "webdav-example"
Require valid-user
</Directory>
</VirtualHost>
Pak už stačí jenom
/etc/init.d/apache2 reload
a na adrese webdav://webdav.mujweb.cz/ by mělo všechno fungovat jak má.
Pro lighttpd, mi to připadá ještě jednodušší.Pro zabezpečení přístupu použijeme htpasswd, soubor s hesly vytvoříme přes
htpasswd -c /var/www/sites/mujweb/htpasswd uziv_jmenoDále musíme mít natažené tyto moduly
# Load modules
server.modules = (
"mod_access",
"mod_webdav",
"mod_auth",
atd.
)
V tomto pořadí, jinak to nefunguje.Do konfigurace dále přidame
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/sites/mujweb/htpasswd"
$HTTP["host"] =~ "webdav.mujweb.cz$" {
server.document-root = "/var/www/sites/mujweb/web"
webdav.activate = "enable"
auth.require = ( "" => ( "method" => "basic",
"realm" => "webdav-example",
"require" => "valid-user" ) )
}
Pak už stací jenom
/etc/init.d/lighttpd restart
A opět vyzkoušet webdav://webdav.mujweb.cz/ zda to funguje.
V souvislosti s tím, jak pěkně se to používá mě napadá jedna otázka, a to: Proč vlastně hostingy používají ftp ?
