PHP WebDAV · 4 min read · Dec 30, 2025

Installation de l'extension PHP WebDAV sur Debian Squeeze

Installation de l’extension PHP WebDAV sur Debian Squeeze

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Cet article montre comment vous pouvez installer l’extension PHP WebDAV pour PHP5 sur un système Debian Squeeze. L’extension PHP WebDAV permet un accès facile aux ressources distantes via le protocole DAV depuis des scripts PHP.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

J’utilise ici un serveur Debian Squeeze. Je suppose qu’Apache2 et PHP5 sont déjà installés et fonctionnent.

2 Installation de l’extension PHP WebDAV

Avant d’installer l’extension PHP WebDAV, nous devons installer quelques dépendances comme suit :

apt-get install php5-dev build-essential libneon27 libneon27-dev

Ensuite, nous téléchargeons et décompressons l’extension 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

Puis nous changeons de répertoire vers le dossier dav…

cd dav/

… et construisons l’extension PHP WebDAV :

phpize  
./configure --enable-dav  
make install

Pour activer l’extension, nous créons le fichier /etc/php5/conf.d/dav.ini…

vi /etc/php5/conf.d/dav.ini

| extension=dav.so |

… et redémarrons Apache :

/etc/init.d/apache2 restart

C’est tout !

3 Utilisation de l’extension PHP WebDAV

Voici un petit script PHP qui démontre comment vous pouvez utiliser l’extension PHP WebDAV :

| |

Cet exemple devrait être assez explicite, cependant, il y a aussi un fichier README dans le paquet source PHP WebDAV que vous avez téléchargé qui contient une référence complète des fonctions :

*.:. Extension PHP WebDAV .:.

  • *———————— BLURB ————————
  • L’extension PHP WebDAV permet un accès facile aux ressources distantes via le
    protocole DAV.
    Elle est basée sur la bibliothèque de référence Neon. La page d’accueil de l’extension PHP WebDAV est http://php-webdav.pureftpd.org *Veuillez signaler les bugs et suggestions à j pureftpd org
  • *———————— INSTALLATION ————————
  • Cette extension nécessite la bibliothèque Neon et les fichiers d’en-tête associés. Neon peut être téléchargé depuis : http://www.webdav.org/neon/ Des paquets précompilés et des ports sont déjà disponibles pour la plupart des systèmes d’exploitation
    et des distributions.
    Pour compiler et installer l’extension PHP WebDAV, suivez simplement la
    procédure standard PECL :
    *$ phpize
    $ ./configure –enable-dav

$ env AUTOCONF_VERSION=2.61 phpize (remplacez 2.61 par l’une des versions actuellement installées d’autoconf sur votre
système) ———————— EXEMPLE DE 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();
  • *———————— EXEMPLE DE RESSOURCE NOMMÉE ————————
  • *$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);
  • *———————— ÉTABLIR UNE CONNEXION ————————
  • Pour établir une nouvelle connexion, utilisez : webdav_connect(string base_url [, string user [, string password
    [, int timeout]]]
    Exemples : 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)
    Fermer une session nécessite simplement un appel à webdav_close() : webdav_close()
    webdav_close($resource)
    L’URL de base est une chaîne qui sera concaténée aux parties URI d’autres
    féctions afin d’obtenir l’URL complète de la ressource.
    Exemples : webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘nice/object.txt’);
    => récupère http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘/nice/object.txt’);
    => récupère également http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘nice/object.txt’);
    => FAUX : récupère http://webdav.example.org/davnice/object.txt webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘/nice/object.txt’);
    => FAUX : récupère http://webdav.example.org/dav//nice/object.txt *En alternative, le nom webdav_open() peut être utilisé à la place de
    webdav_connect().
  • *———————— RÉCUPÉRER UNE RESSOURCE ————————
  • Pour récupérer une ressource, utilisez :
    webdav_get(string uri [, resource session])
    *La fonction retourne le contenu, ou FALSE si une erreur s’est produite.
  • *———————— STOCKER UNE RESSOURCE ————————
  • *Le stockage d’une ressource est disponible via la fonction webdav_put() :
    webdav_put(string uri, string data [, resource session])
  • *———————— SUPPRIMER UNE RESSOURCE ————————
  • webdav_delete() supprime une ressource :
    webdav_delete(string uri [, resource session])
    *En alternative, les noms webdav_unlink(), webdav_remove() et
    webdav_rmdir() peuvent être utilisés à la place de webdav_delete().
  • *———————— CRÉER UNE COLLECTION ————————
  • Une collection (pensez-y comme un sous-répertoire si vous n’êtes pas familier avec
    DAV) est créée avec la fonction webdav_mkcol() :
    bool webdav_mkcol(string uri [, resource session]) *En alternative, le nom webdav_mkdir() peut être utilisé à la place de
    webdav_mkcol().
  • *———————— COPIER UNE RESSOURCE ————————
  • Si le serveur l’implémente, les ressources peuvent être copiées : webdav_copy(string source_uri, string target_uri
    [, bool overwrite [, bool recursive [, resource session]]])
    *Par défaut, les ressources peuvent être écrasées et elles sont copiées de manière récursive.
  • *———————— DÉPLACER/RENOMMER UNE RESSOURCE ————————
  • Les ressources peuvent également être déplacées ou renommées : webdav_move(string source_uri, string target_uri
    [, bool overwrite, [, resource session]])
    *En alternative, le nom webdav_rename() peut être utilisé à la place de
    webdav_move().
  • *—————————— API DE STREAM PHP ——————————
  • En alternative aux fonctions webdav_(), le fichier davstream.inc.php peut être
    inclus dans vos projets afin que les serveurs DAV puissent être atteints via des appels PHP standard, via des flux 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’); ?> C’est un peu plus lent que les fonctions webdav*() natives.

4 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.