Questa guida spiega come impostare WebDAV con lighttpd su un server Debian Etch. 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 Etch con la 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:
apt-get install lighttpd lighttpd-mod-webdav apache2-utils
In seguito, creare la directory /var/run/lighttpd e renderlo posseduto dal gruppo e utente www-data . Questa directory conterrà un database SQLite necessarie di WebDAV:
mkdir/var/run/lighttpd /
chown www-dati: www-data/var/run/lighttpd /
Successivamente, abilitiamo il modulo mod_auth:
lighty-enable-mod auth
… e aprire /etc/lighttpd/lighttpd.conf per assicurarsi che i moduli mod_alias e mod_webdav sono attivate nella stanza Server. Modules :
vi /etc/lighttpd/lighttpd.conf
[...] server.modules = ( "mod_access", "mod_alias", "mod_accesslog", # "mod_rewrite", # "mod_redirect", # "mod_status", # "mod_evhost", # "mod_compress", # "mod_usertrack", # "mod_rrdtool", "mod_webdav", # "mod_expire", # "mod_flv_streaming", # "mod_evasive" ) [...] |
Riavviare in seguito lighttpd:
/etc/init.d/lighttpd restart
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-dati: www-dati /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!)
Ora cambiamo le autorizzazioni del file /var/www/web1/passwd.dav in modo che solo la radice e i membri del gruppo di www-dati possono accedervi:
chown root: www-dati /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
Ora modifichiamo i nostri vhost in /etc/lighttpd/lighttpd.conf modo che appaia come indicato di seguito:
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" ) ) } } |
La direttiva alias.url rende (insieme a $HTTP [“url”] = ~ “^ / webdav($|/)”) che quando si chiama /webdav, WebDAV viene richiamato, ma è comunque possibile accedere la radice di tutto il documento del vhost. Tutti gli altri URL di quel vhost sono ancora “normale” HTTP.
Riavviare in seguito lighttpd:
/etc/init.d/lighttpd restart
5 test WebDAV
Ora installeremo il cadavere, un client WebDAV da riga di comando:
apt-get install cadaver
Per testare se funziona WebDAV, digitare:
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: ~ # cadavere http://www.example.com/webdav/
Autenticazione richiesta per webdav sul server ‘www.example.com’:
Username: prova
Password:
DAV: / webdav/> quit
Connessione a ‘www.example.com’ chiusa.
Server1: ~ #
6 configurare un Client di Windows XP per connettersi alla condivisione WebDAV
Questo è descritto su http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p2.
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
Questo è descritto su http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p3.
8 links
- WebDAV: http://www.webdav.org
- Lighttpd: http://www.lighttpd.net
- Debian: http://www.debian.org