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-dev

Successivamente, 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.gz

Poi cambiamo nella directory dav…

cd dav/

… e costruiamo l’estensione PHP WebDAV:

phpize  
./configure --enable-dav  
make install

Per 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 restart

Ecco 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 j pureftpd 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

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.