13.01.2008 Jak jsem objevil WebDav

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.2

Pokud 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_jmeno
Buď 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_jmeno
Dá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 ?

Komentáře (0)

© 2008. Weblog nejen o práci. www.Karotka.cz. Rss    Google Pagerank - www.karotka.czGoogle Pagerank S-Rank - www.karotka.czS-Rank