PHP WebDAV · 4 min read · Dec 30, 2025

Instalando a Extensão PHP WebDAV No Debian Squeeze

Instalando a Extensão PHP WebDAV No Debian Squeeze

Versão 1.0
Autor: Falko Timme
Siga-me no Twitter

Este artigo mostra como você pode instalar a extensão PHP WebDAV para PHP5 em um sistema Debian Squeeze. A extensão PHP WebDAV permite o acesso fácil a recursos remotos através do protocolo DAV a partir de scripts PHP.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Estou usando um servidor Debian Squeeze aqui. Estou assumindo que o Apache2 e o PHP5 já estão instalados e funcionando.

2 Instalando a Extensão PHP WebDAV

Antes de instalarmos a extensão PHP WebDAV, precisamos instalar algumas dependências da seguinte forma:

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

Em seguida, baixamos e descompactamos a extensão 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

Então, mudamos para o diretório dav…

cd dav/

… e construímos a extensão PHP WebDAV:

phpize  
./configure --enable-dav  
make install

Para habilitar a extensão, criamos o arquivo /etc/php5/conf.d/dav.ini…

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

| extension=dav.so |

… e reiniciamos o Apache:

/etc/init.d/apache2 restart

É isso!

3 Usando a Extensão PHP WebDAV

Aqui está um pequeno script PHP que demonstra como você pode usar a extensão PHP WebDAV:

| |

Esse exemplo deve ser bastante autoexplicativo, no entanto, também há um arquivo README no pacote fonte do PHP WebDAV que você baixou, que contém uma referência completa de funções:

*.:. Extensão PHP WebDAV .:.

  • *———————— BLURB ————————
  • A extensão PHP WebDAV permite o acesso fácil a recursos remotos através do
    protocolo DAV.
    É baseada na biblioteca de referência Neon. A página inicial da extensão PHP WebDAV é http://php-webdav.pureftpd.org *Por favor, relate bugs e sugestões para j pureftpd org
  • *———————— INSTALAÇÃO ————————
  • Esta extensão requer a biblioteca Neon e os arquivos de cabeçalho relacionados. Neon pode ser baixado de: http://www.webdav.org/neon/ Pacotes pré-compilados e ports já estão disponíveis para a maioria dos sistemas operacionais
    e distribuições.
    Para compilar e instalar a extensão PHP WebDAV, basta seguir o
    procedimento padrão do PECL :
    *$ phpize
    $ ./configure –enable-dav

$ env AUTOCONF_VERSION=2.61 phpize (substitua 2.61 por qualquer uma das versões atualmente instaladas do autoconf no seu
sistema) ———————— EXEMPLO 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();
  • *———————— EXEMPLO DE RECURSO NOMEADO ————————
  • *$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);
  • *———————— ESTABELECENDO UMA CONEXÃO ————————
  • Para estabelecer uma nova conexão, use: webdav_connect(string base_url [, string user [, string password
    [, int timeout]]]
    Exemplos: 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)
    Fechar uma sessão requer apenas uma chamada para webdav_close() : webdav_close()
    webdav_close($resource)
    A URL base é uma string que será concatenada às partes URI de outras
    f funções para obter a URL completa do recurso.
    Exemplos: webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘nice/object.txt’);
    => busca http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘/nice/object.txt’);
    => também busca http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘nice/object.txt’);
    => ERRADO : busca http://webdav.example.org/davnice/object.txt webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘/nice/object.txt’);
    => ERRADO : busca http://webdav.example.org/dav//nice/object.txt *Como alternativa, o nome webdav_open() pode ser usado no lugar de
    webdav_connect().
  • *———————— BUSCANDO UM RECURSO ————————
  • Para buscar um recurso, use:
    webdav_get(string uri [, resource session])
    *A função retorna o conteúdo, ou FALSE se um erro ocorreu.
  • *———————— ARMAZENANDO UM RECURSO ————————
  • *Armazenar um recurso está disponível através da função webdav_put():
    webdav_put(string uri, string data [, resource session])
  • *———————— DELETANDO UM RECURSO ————————
  • webdav_delete() deleta um recurso :
    webdav_delete(string uri [, resource session])
    *Como alternativa, os nomes webdav_unlink(), webdav_remove() e
    webdav_rmdir() podem ser usados no lugar de webdav_delete().
  • *———————— CRIANDO UMA COLEÇÃO ————————
  • Uma coleção (pense nela como um subdiretório se você não estiver familiarizado com
    DAV) é criada com a função webdav_mkcol() :
    bool webdav_mkcol(string uri [, resource session]) *Como alternativa, o nome webdav_mkdir() pode ser usado no lugar de
    webdav_mkcol().
  • *———————— COPIANDO UM RECURSO ————————
  • Se o servidor implementar, recursos podem ser copiados: webdav_copy(string source_uri, string target_uri
    [, bool overwrite [, bool recursive [, resource session]]])
    *Por padrão, recursos podem ser sobrescritos e são copiados recursivamente.
  • *———————— MOVENDO/RENOMEANDO UM RECURSO ————————
  • Recursos também podem ser movidos ou renomeados: webdav_move(string source_uri, string target_uri
    [, bool overwrite, [, resource session]])
    *Como alternativa, o nome webdav_rename() pode ser usado no lugar de
    webdav_move().
  • *—————————— API DE STREAM PHP ——————————
  • Como alternativa às funções webdav_(), o arquivo davstream.inc.php pode ser
    incluído em seus projetos para que servidores DAV possam ser acessados através de chamadas
    PHP padrão, através de streams 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’); ?> Isso é um pouco mais lento do que as funções nativas webdav*().

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.