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-devEm 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.gzEntão, mudamos para o diretório dav…
cd dav/… e construímos a extensão PHP WebDAV:
phpize
./configure --enable-dav
make installPara 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 jpureftpd 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
- Extensão PHP WebDAV: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.