在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链接
- PHP WebDAV扩展: http : //php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http : //www.webdav.org