Questa guida spiega come configurare WebDAV con Lighttpd su un server Debian 8 (Jessie). WebDAV sta per Creazione distribuita e controllo delle versioni basate sul Web ed è un insieme di estensioni al protocollo HTTP che consente agli utenti di modificare direttamente i file sul server Lighttpdd in modo che non debbano essere scaricati/caricati tramite FTP. Naturalmente WebDAV può essere utilizzato anche per caricare e scaricare file.
1 Nota preliminare
Sto usando un server Debian 8 con l'indirizzo IP 192.168.1.100 qui. La mia configurazione si basa sul tutorial del server minimo Debian, ma qualsiasi sistema Debian che non esegue ancora un server Web dovrebbe andare bene.
2 Installazione di WebDAV
Puoi installare lighttpd (se non è già installato), il modulo WebDAV lighttpd e il pacchetto apache2-utils (che contiene lo strumento htpasswd che ci servirà in seguito per generare un file di password per la condivisione WebDAV) come segue:
apt-get -y install lighttpd lighttpd-mod-webdav apache2-utils
Successivamente, dobbiamo assicurarci che la directory /var/run/lighttpd sia di proprietà dell'utente e del gruppo www-data. Questa directory conterrà un database SQLite necessario a 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
Ricarica Lighttpd in seguito:
service lighttpd force-reload
3 Creazione di un host virtuale
Ora creerò un host virtuale Lighttpd (www.example.com) nella directory /var/www/web1/web. Se hai già un host virtuale per il quale desideri abilitare WebDAV, devi adattare questo tutorial alla tua situazione.
Innanzitutto, creiamo la directory /var/www/web1/web e rendiamo l'utente lighttpd (www-data) il proprietario di quella directory:
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web
Quindi apriamo /etc/lighttpd/lighttpd.conf e aggiungiamo il seguente vhost alla fine del file:
nano /etc/lighttpd/lighttpd.conf
[...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" }
Successivamente riavviamo lighttpd:
service lighttpd restart
4 Configurare l'host virtuale per WebDAV
Ora creiamo il file password WebDAV /var/www/web1/passwd.dav con il test utente (l'opzione -c crea il file se non esiste):
htpasswd -c /var/www/web1/passwd.dav test
Ti verrà chiesto di digitare una password per il test utente.
(Per favore non usare l'opzione -c se /var/www/web1/passwd.dav è già esistente perché questo ricreerà il file da zero, il che significa che perdi tutti gli utenti in quel file!)
Ora modifichiamo i permessi del file /var/www/web1/passwd.dav in modo che solo root e i membri del gruppo www-data possano accedervi:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
Ora modifichiamo il nostro vhost in /etc/lighttpd/lighttpd.conf in modo che appaia come segue:
nano /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"
dir-listing.activate = "enable" 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 fa (insieme a $HTTP["url"] =~ "^/webdav($|/)") che quando chiami /webdav, WebDAV venga invocato, ma puoi comunque accedere all'intera radice del documento di il vhost. Tutti gli altri URL di quel vhost sono ancora HTTP "normali".
Riavvia Lighttpd in seguito:
service lighttpd restart
5 Test di WebDAV
Ora installeremo cadaver, un client WebDAV da riga di comando:
apt-get -y install cadaver
Per verificare se WebDAV funziona, digita:
cadaver http://www.example.com/webdav/
Ti dovrebbe essere richiesto il nome utente. Digitare test e quindi la password per il test utente. Se tutto va bene, ti dovrebbe essere concesso l'accesso, il che significa che WebDAV funziona correttamente. Digita quit per uscire dalla shell WebDAV:
[email protected]:/home/administrator# 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.
[email protected]:/home/administrator#
6 link
- WebDAV:http://www.webdav.org/
- Lighttpd:http://www.lighttpd.net/
- Debian:http://www.debian.org/