在Debian Etch上安装PHP WebDAV扩展

在Debian Etch上安装PHP WebDAV扩展

版本1.0
作者:Falko Timme

本文介绍如何在Debian Etch系统上安装PHP5的PHP WebDAV扩展 。 PHP WebDAV扩展允许通过PHP脚本的DAV协议轻松访问远程资源。

我不会保证这将为您工作!

1初步说明

我在这里使用Debian Etch服务器。 我假设Apache2和PHP5已经安装并工作了。

2安装PHP WebDAV扩展

在安装PHP WebDAV扩展之前,我们需要安装一些依赖关系,如下所示:

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

接下来我们下载并解压缩PHP WebDAV扩展:

cd /tmp
wget http://download.pureftpd.org/php-webdav/php-webdav-1.1.tar.gz
tar xvfz php-webdav-1.1.tar.gz

然后我们改成dav目录

cd dav/

...并构建PHP WebDAV扩展:

phpize
./configure --enable-dav
make install

为了启用扩展,我们创建文件/etc/php5/conf.d/dav.ini ...

vi /etc/php5/conf.d/dav.ini
extension=dav.so

...并重新启动Apache:

/etc/init.d/apache2 restart

而已!

3使用PHP WebDAV扩展

这是一个PHP脚本,演示如何使用PHP WebDAV扩展:

<?php
$res = webdav_connect('http://webdav.example.com/', 'webdavuser', 'webdavpassword');
webdav_put('/setup.txt', file_get_contents('/var/www/setup.txt'), $res);
$a = webdav_get('/setup.txt', $res);
echo $a;

webdav_unlink('/setup.txt', $res);
webdav_rename('/setup.txt', '/bla.txt', TRUE, $res);
webdav_copy('/bla.txt', '/setup.txt', TRUE, TRUE, $res);
webdav_unlink('/setup.txt', $res);
webdav_close($res);
?>

该示例应该是非常自明的,但是您已下载的PHP WebDAV源包中还有一个README文件,其中包含一个完整的函数引用:


PHP WebDAV扩展。

------------------------ BLURB ------------------------

PHP WebDAV扩展允许轻松访问远程资源
DAV协议。

它基于Neon参考库。

PHP WebDAV扩展主页是http://php-webdav.pureftpd.org

请向jupup pureftpd <dot> org报告bug和建议

------------------------安装------------------------

此扩展需要Neon库和相关的头文件。

霓虹灯可从以下网址下载:http://www.webdav.org/neon/

大多数操作系统已经可以使用预构建的软件包和端口
和发行。

为了编译和安装PHP WebDAV扩展,只需按照
标准PECL程序:

$ phpize
$ ./configure --enable-dav
#make install

在OpenBSD系统上,使用
$ env AUTOCONF_VERSION = 2.61 phpize

(将2.61替换为您当前安装的任何autoconf版本
系统)

------------------------基本例子------------------------

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('/ unused_resource.txt');
webdav_rename('/ dir / old_name','/ dir / new_name');
webdav_copy('/ dir / orig_dir','/ dir / new_dir',TRUE);
webdav_close();

------------------------已知资源示例----------------------- -

$ 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('/ unused_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);

------------------------建立连接----------------------- -

为了建立新的连接,请使用:

webdav_connect(string base_url [,string user [,string password
[,int timeout]]]

例子:

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)

关闭会话只需要调用webdav_close():

webdav_close()
webdav_close($ resource)

基本URL是一个字符串,将被连接到其他URI的URI部分
功能,以获得完整的资源URL。

例子:

webdav_connect('http://webdav.example.org/dav/');
$ a = webdav_get('nice / object.txt');

=> fetch http://webdav.example.org/dav/nice/object.txt

webdav_connect('http://webdav.example.org/dav');
$ a = webdav_get('/ nice / object.txt');

=>还提取http://webdav.example.org/dav/nice/object.txt

webdav_connect('http://webdav.example.org/dav');
$ a = webdav_get('nice / object.txt');

=>错误:提取http://webdav.example.org/davnice/object.txt

webdav_connect('http://webdav.example.org/dav/');
$ a = webdav_get('/ nice / object.txt');

=>错误:提取http://webdav.example.org/dav//nice/object.txt

作为替代,名称webdav_open()可以用于代替
webdav_connect()。

------------------------切割资源----------------------- -

为了获取资源,请使用:
webdav_get(string uri [,resource session])

该函数返回内容,如果发生错误,则返回FALSE。

------------------------存储资源----------------------- -

通过webdav_put()函数可以存储资源:
webdav_put(string uri,string data [,resource session])

------------------------删除资源----------------------- -

webdav_delete()删除资源:
webdav_delete(string uri [,resource session])

作为替代,名称webdav_unlink(),webdav_remove()和
webdav_rmdir()可以用于代替webdav_delete()。

------------------------创建收藏----------------------- -

一个集合(如果你不熟悉,可以考虑一个子目录
DAV)使用webdav_mkcol()函数创建:

bool webdav_mkcol(string uri [,resource session])

或者,可以使用名称webdav_mkdir()来代替
webdav_mkcol()。

------------------------复制资源----------------------- -

如果服务器实现它,则可以复制资源:

webdav_copy(string source_uri,string target_uri
[,bool overwrite [,bool recursive [,resource session]]])

默认情况下,资源可以被覆盖,并被递归复制。

------------------------移动/取消资源--------------------- --- ---

资源也可以被移动或重命名:

webdav_move(string source_uri,string target_uri
[,bool overwrite,[,resource session]])

作为替代,名称webdav_rename()可以用于代替
webdav_move()。

------------------------------ PHP STREAM API ----------------- -------------

作为webdav _ *()函数的替代方法,dav_stream.inc.php文件可以是
包括在您的项目中,以便通过标准达到DAV服务器
PHP调用,通过webdav:// streams:

<?php

需要'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');

?>

这比本机webdav _ *()函数慢一些。

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏