Questa guida spiega come impostare WebDAV con lighttpd su un server Debian Lenny. WebDAV è sinonimo di Web-based Distributed Authoring and Versioning ed è un insieme di estensioni del protocollo HTTP che consentono agli utenti di modificare direttamente i file sul server lighttpd affinché non devono essere scaricati/caricati tramite FTP. Naturalmente, WebDAV può essere utilizzato anche per caricare e scaricare file.
Io non rilasciano alcuna garanzia che questo funziona per voi!
1 Nota preliminare
Sto usando un server Debian Lenny con l’IP indirizzo 192.168.0.100 qui.
2 installazione di WebDAV
È possibile installare lighttpd (se non già installato), il modulo di WebDAV lighttpd e il pacchetto apache2-utils (che contiene il tool htpasswd che avremo bisogno più tardi per generare un file di password per la condivisione WebDAV) come segue:
aptitude install lighttpd lighttpd-mod-webdav apache2-utils
In seguito, dobbiamo assicurarci che la directory /var/run/lighttpd è posseduto dal gruppo e utente www-data . Questa directory conterrà un database SQLite necessarie di WebDAV:
chown www-data:www-data /var/run/lighttpd/
Successivamente, abilitiamo i moduli mod_auth e mod_webdav:
lighty-enable-mod auth
lighty-enable-mod webdav
Ricaricare in seguito lighttpd:
/etc/init.d/lighttpd force-reload
3 creazione di un Host virtuale
Ora creo un vhost di lighttpd (www.example.com) nella directory /var/www/web1/web. Se hai già un vhost per il quale si desidera abilitare WebDAV, è necessario regolare questo tutorial alla vostra situazione.
In primo luogo, creiamo la directory /var/www/web1/web e rendere l’utente di lighttpd (www-data) il proprietario della directory:
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web
Quindi apriamo /etc/lighttpd/lighttpd.conf e aggiungere il vhost seguente alla fine del file:
vi /etc/lighttpd/lighttpd.conf
[...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" } |
In seguito si riparte lighttpd:
/etc/init.d/lighttpd restart
4 configurare l’Host virtuale per WebDAV
Ora creiamo il file di password WebDAV /var/www/web1/passwd.dav con l’utente di prova (l’opzione – c crea il file se non esiste):
htpasswd -c /var/www/web1/passwd.dav test
Verrà chiesto di digitare una password per l’utente di prova.
(Non utilizzare l’opzione -c se la /var/www/web1/passwd.dav è già esistenti perché questo verrà ricreato il file da zero, significato che si perdono tutti gli utenti in quel file!)
Now we change the permissions of the /var/www/web1/passwd.dav file so that only root and the members of the www-datagroup can access it:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
Now we modify our vhost in /etc/lighttpd/lighttpd.conf so that it looks as follows:
vi /etc/lighttpd/lighttpd.conf
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" alias.url = ( "/webdav" => "/var/www/web1/web" ) $HTTP["url"] =~ "^/webdav($|/)" { webdav.activate = "enable" webdav.is-readonly = "disable" webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db" auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav" auth.require = ( "" => ( "method" => "basic", "realm" => "webdav", "require" => "valid-user" ) ) } } |
The alias.url directive makes (together with $HTTP[“url”] =~ “^/webdav($|/)”) that when you call /webdav, WebDAV is invoked, but you can still access the whole document root of the vhost. All other URLs of that vhost are still “normal” HTTP.
Restart lighttpd afterwards:
/etc/init.d/lighttpd restart
5 Testing WebDAV
We will now install cadaver, a command-line WebDAV client:
aptitude install cadaver
To test if WebDAV works, type:
cadaver http://www.example.com/webdav/
Verrà richiesto un nome utente. Tipo in prova e poi la password per l’utente di prova. Se tutto va bene, si dovrebbe essere concesso l’accesso che significa che WebDAV sta funzionando bene. Digitare quit per lasciare la shell di WebDAV:
server1:~# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
server1:~#
6 configurare un Client di Windows XP per connettersi alla condivisione WebDAV
Si prega di specificare la porta nell’URL di WebDAV, ad esempio http://www.example.com: 80/webdav. Per qualche strana ragione che questo rende Windows XP accetta il nome utente normale (ad esempio test) – altrimenti Windows XP prevede nomi utente NTLM (che avrebbero la forma \test www.example.com).
7 configurare un Client di Linux (GNOME) per connettersi alla condivisione WebDAV
8 links
- WebDAV: http://www.webdav.org
- Lighttpd: http://www.lighttpd.net
- Debian: http://www.debian.org