PHP WebDAV · 4 min read · Dec 30, 2025
Instalando la extensión PHP WebDAV en Debian Squeeze
Instalando la extensión PHP WebDAV en Debian Squeeze
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
Este artículo muestra cómo puedes instalar la extensión PHP WebDAV para PHP5 en un sistema Debian Squeeze. La extensión PHP WebDAV permite el acceso fácil a recursos remotos a través del protocolo DAV desde scripts PHP.
¡No emito ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
Estoy usando un servidor Debian Squeeze aquí. Asumo que Apache2 y PHP5 ya están instalados y funcionando.
2 Instalando la extensión PHP WebDAV
Antes de instalar la extensión PHP WebDAV, necesitamos instalar algunas dependencias como sigue:
apt-get install php5-dev build-essential libneon27 libneon27-devA continuación, descargamos y descomprimimos la extensión PHP WebDAV:
cd /tmp
wget http://download.pureftpd.org/php-webdav/php-webdav-1.2.tar.gz
tar xvfz php-webdav-1.2.tar.gzLuego cambiamos al directorio dav…
cd dav/… y construimos la extensión PHP WebDAV:
phpize
./configure --enable-dav
make installPara habilitar la extensión, creamos el archivo /etc/php5/conf.d/dav.ini…
vi /etc/php5/conf.d/dav.ini| extension=dav.so |
… y reiniciamos Apache:
/etc/init.d/apache2 restart¡Eso es todo!
3 Usando la extensión PHP WebDAV
Aquí hay un pequeño script PHP que demuestra cómo puedes usar la extensión PHP WebDAV:
| |
Ese ejemplo debería ser bastante autoexplicativo, sin embargo, también hay un archivo README en el paquete fuente de PHP WebDAV que has descargado que contiene una referencia completa de funciones:
*.:. Extensión PHP WebDAV .:.
- *———————— BLURB ————————
- La extensión PHP WebDAV permite el acceso fácil a recursos remotos a través del
protocolo DAV. Se basa en la biblioteca de referencia Neon. La página de inicio de la extensión PHP WebDAV es http://php-webdav.pureftpd.org *Por favor, reporta errores y sugerencias a jpureftpd org - *———————— INSTALACIÓN ————————
- Esta extensión requiere la biblioteca Neon y los archivos de encabezado relacionados. Neon se puede descargar de: http://www.webdav.org/neon/ Los paquetes y puertos preconstruidos ya están disponibles para la mayoría de los sistemas operativos
y distribuciones. Para compilar e instalar la extensión PHP WebDAV, solo sigue el
procedimiento estándar de PECL : *$ phpize
$ ./configure –enable-dav
$ env AUTOCONF_VERSION=2.61 phpize (reemplaza 2.61 con cualquiera de las versiones actualmente instaladas de autoconf en tu
sistema) ———————— EJEMPLO BÁSICO ————————
- *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(); - *———————— EJEMPLO DE RECURSO NOMBRADO ————————
- *$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); - *———————— ESTABLECIENDO UNA CONEXIÓN ————————
- Para establecer una nueva conexión, usa: webdav_connect(string base_url [, string user [, string password
[, int timeout]]] Ejemplos: 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) Cerrar una sesión solo requiere una llamada a webdav_close() : webdav_close()
webdav_close($resource) La URL base es una cadena que se concatenará a las partes URI de otras
fuciones para obtener la URL completa del recurso. Ejemplos: webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘nice/object.txt’); => obtener http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘/nice/object.txt’); => también obtener http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘nice/object.txt’); => INCORRECTO : obtiene http://webdav.example.org/davnice/object.txt webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘/nice/object.txt’); => INCORRECTO : obtiene http://webdav.example.org/dav//nice/object.txt *Como alternativa, el nombre webdav_open() puede ser usado en lugar de
webdav_connect(). - *———————— OBTENIENDO UN RECURSO ————————
- Para obtener un recurso, usa:
webdav_get(string uri [, resource session]) *La función devuelve el contenido, o FALSE si ocurrió un error. - *———————— ALMACENANDO UN RECURSO ————————
- *Almacenar un recurso está disponible a través de la función webdav_put():
webdav_put(string uri, string data [, resource session]) - *———————— ELIMINANDO UN RECURSO ————————
- webdav_delete() elimina un recurso :
webdav_delete(string uri [, resource session]) *Como alternativa, los nombres webdav_unlink(), webdav_remove() y
webdav_rmdir() pueden ser usados en lugar de webdav_delete(). - *———————— CREANDO UNA COLECCIÓN ————————
- Una colección (piensa en ello como un subdirectorio si no estás familiarizado con
DAV) se crea con la función webdav_mkcol() : bool webdav_mkcol(string uri [, resource session]) *Como alternativa, el nombre webdav_mkdir() puede ser usado en lugar de
webdav_mkcol(). - *———————— COPIANDO UN RECURSO ————————
- Si el servidor lo implementa, los recursos pueden ser copiados: webdav_copy(string source_uri, string target_uri
[, bool overwrite [, bool recursive [, resource session]]]) *Por defecto, los recursos pueden ser sobrescritos y se copian recursivamente. - *———————— MOVIENDO/RENOMBRANDO UN RECURSO ————————
- Los recursos también pueden ser movidos o renombrados: webdav_move(string source_uri, string target_uri
[, bool overwrite, [, resource session]]) *Como alternativa, el nombre webdav_rename() puede ser usado en lugar de
webdav_move(). - *—————————— API DE FLUJO PHP ——————————
- Como alternativa a las funciones webdav_(), el archivo davstream.inc.php puede ser
incluido en tus proyectos para que los servidores DAV puedan ser alcanzados a través de llamadas estándar
PHP, a través de flujos 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’); ?> Esto es un poco más lento que las funciones nativas webdav*().
4 Enlaces
- Extensión PHP WebDAV: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.