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-devEnsuite, 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.gzPuis nous changeons de répertoire vers le dossier dav…
cd dav/… et construisons l’extension PHP WebDAV :
phpize
./configure --enable-dav
make installPour 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 restartC’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 à jpureftpd 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
- Extension PHP WebDAV : http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV : http://www.webdav.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.