PHP WebDAV · 4 min read · Dec 30, 2025
Installazione dell'estensione PHP WebDAV su Debian Squeeze
Installazione dell’estensione PHP WebDAV su Debian Squeeze
Versione 1.0
Autore: Falko Timme
Seguimi su Twitter
Questo articolo mostra come puoi installare l’estensione PHP WebDAV per PHP5 su un sistema Debian Squeeze. L’estensione PHP WebDAV consente un facile accesso a risorse remote tramite il protocollo DAV da script PHP.
Non fornisco alcuna garanzia che questo funzionerà per te!
1 Nota preliminare
Sto usando un server Debian Squeeze qui. Presumo che Apache2 e PHP5 siano già installati e funzionanti.
2 Installazione dell’estensione PHP WebDAV
Prima di installare l’estensione PHP WebDAV, dobbiamo installare alcune dipendenze come segue:
apt-get install php5-dev build-essential libneon27 libneon27-devSuccessivamente, scarichiamo e decomprimiamo l’estensione PHP WebDAV:
cd /tmp
wget http://download.pureftpd.org/php-webdav/php-webdav-1.2.tar.gz
tar xvfz php-webdav-1.2.tar.gzPoi cambiamo nella directory dav…
cd dav/… e costruiamo l’estensione PHP WebDAV:
phpize
./configure --enable-dav
make installPer abilitare l’estensione, creiamo il file /etc/php5/conf.d/dav.ini…
vi /etc/php5/conf.d/dav.ini| extension=dav.so |
… e riavviamo Apache:
/etc/init.d/apache2 restartEcco fatto!
3 Utilizzo dell’estensione PHP WebDAV
Ecco un piccolo script PHP che dimostra come puoi utilizzare l’estensione PHP WebDAV:
| |
Quell’esempio dovrebbe essere piuttosto autoesplicativo, tuttavia c’è anche un file README nel pacchetto sorgente PHP WebDAV che hai scaricato che contiene un riferimento completo alle funzioni:
*.:. Estensione PHP WebDAV .:.
- *———————— BLURB ————————
- L’estensione PHP WebDAV consente un facile accesso a risorse remote tramite il
protocollo DAV. Si basa sulla libreria di riferimento Neon. La homepage dell’estensione PHP WebDAV è http://php-webdav.pureftpd.org *Si prega di segnalare bug e suggerimenti a jpureftpd org - *———————— INSTALLAZIONE ————————
- Questa estensione richiede la libreria Neon e i relativi file di intestazione. Neon può essere scaricato da: http://www.webdav.org/neon/ Pacchetti e porte precompilati sono già disponibili per la maggior parte dei sistemi operativi
e distribuzioni. Per compilare e installare l’estensione PHP WebDAV, segui semplicemente la
procedura standard PECL : *$ phpize
$ ./configure –enable-dav
$ env AUTOCONF_VERSION=2.61 phpize (sostituisci 2.61 con una delle versioni attualmente installate di autoconf sul tuo
sistema) ———————— ESEMPIO BASE ————————
- *webdav_connect(‘http://webdav.example.com/dav’, ‘davuser’, ‘davpassword’);
$a = webdav_get(‘/my/nice/object.txt’);
webdav_put(‘/your/nice/thing.txt’, $data);
webdav_unlink(‘/unwanted_resource.txt’);
webdav_rename(‘/dir/old_name’, ‘/dir/new_name’);
webdav_copy(‘/dir/orig_dir’, ‘/dir/new_dir’, TRUE);
webdav_close(); - *———————— ESEMPIO DI RISORSA NOMINATA ————————
- *$res = webdav_connect(‘http://webdav.example.com/dav’, ‘davuser’, ‘davpassword’);
$a = webdav_get(‘/my/nice/object.txt’, $res);
webdav_put(‘/your/nice/thing.txt’, $data, $res);
webdav_unlink(‘/unwanted_resource.txt’, $res);
webdav_rename(‘/dir/old_name’, ‘/dir/new_name’, $res);
webdav_copy(‘/dir/orig_dir’, ‘/dir/new_dir’, TRUE, $res);
webdav_close($res); - *———————— STABILIRE UNA CONNESSIONE ————————
- Per stabilire una nuova connessione, usa: webdav_connect(string base_url [, string user [, string password
[, int timeout]]] Esempi: webdav_connect(‘http://webdav.example.org/dav/‘)
webdav_connect(‘http://webdav.example.org/dav/‘, ‘myuser’, ‘mypassword’)
webdav_connect(‘http://webdav.example.org/dav/‘, ‘myuser’, ‘mypassword’, 10) Chiudere una sessione richiede solo una chiamata a webdav_close() : webdav_close()
webdav_close($resource) L’url di base è una stringa che verrà concatenata alle parti URI di altre
funzioni per ottenere l’URL completo della risorsa. Esempi: webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘nice/object.txt’); => recupera http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘/nice/object.txt’); => recupera anche http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘nice/object.txt’); => ERRATO : recupera http://webdav.example.org/davnice/object.txt webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘/nice/object.txt’); => ERRATO : recupera http://webdav.example.org/dav//nice/object.txt *Come alternativa, il nome webdav_open() può essere utilizzato al posto di
webdav_connect(). - *———————— RECUPERARE UNA RISORSA ————————
- Per recuperare una risorsa, usa:
webdav_get(string uri [, resource session]) *La funzione restituisce il contenuto, o FALSE se si è verificato un errore. - *———————— MEMORIZZARE UNA RISORSA ————————
- *Memorizzare una risorsa è disponibile tramite la funzione webdav_put():
webdav_put(string uri, string data [, resource session]) - *———————— CANCELLARE UNA RISORSA ————————
- webdav_delete() cancella una risorsa :
webdav_delete(string uri [, resource session]) *Come alternativa, i nomi webdav_unlink(), webdav_remove() e
webdav_rmdir() possono essere utilizzati al posto di webdav_delete(). - *———————— CREARE UNA COLLEZIONE ————————
- Una collezione (pensala come una sottodirectory se non sei familiare con
DAV) è creata con la funzione webdav_mkcol() : bool webdav_mkcol(string uri [, resource session]) *Come alternativa, il nome webdav_mkdir() può essere utilizzato al posto di
webdav_mkcol(). - *———————— COPIARE UNA RISORSA ————————
- Se il server lo implementa, le risorse possono essere copiate: webdav_copy(string source_uri, string target_uri
[, bool overwrite [, bool recursive [, resource session]]]) *Per impostazione predefinita, le risorse possono essere sovrascritte e vengono copiate ricorsivamente. - *———————— MUOVERE/RINOMINARE UNA RISORSA ————————
- Le risorse possono anche essere spostate o rinominate: webdav_move(string source_uri, string target_uri
[, bool overwrite, [, resource session]]) *Come alternativa, il nome webdav_rename() può essere utilizzato al posto di
webdav_move(). - *—————————— API STREAM PHP ——————————
- Come alternativa alle funzioni webdav_(), il file davstream.inc.php può essere
incluso nei tuoi progetti in modo che i server DAV possano essere raggiunti tramite chiamate PHP standard, tramite stream webdav://: require ‘dav_stream.inc.php’; $fp = fopen(‘webdav://dav.example.com/dav/dir/file.txt’, ‘w’);
fwrite($fp, “test\n”);
fclose($fp);
$data = file_get_contents(‘webdav://dav.example.com/dav/dir/file.txt’);
$st = stat(‘webdav://dav.example.com/dav/dir/file.txt’);
copy(‘/tmp/xyz.txt’, ‘webdav://dav.example.com/dav/dir/xyz.txt’);
unlink(‘webdav://dav.example.com/dav/dir/abc.txt’); ?> Questo è un po’ più lento delle funzioni native webdav*().
4 Link
- Estensione PHP WebDAV: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.