转自:http://blog.myspace.cn/e/401362066.htm
Apache WEBDAV设置
webDAV(web分布式创作和版本控制)协议是一个基于HTTP的新协议,利用这个协议用户可以通过web进行远程的基本文件操作,如拷贝、移动、删 除等。现在,在Apahe和微软IIS上可以找到WebDAV的身影, WebDAV功能嵌入了Windows和Mac OS X等普通台式机操作系统,以及Adobe、Lotus、微软和其他公司的流行软件之中。业内主要的文档和内容管理供应商也对它普遍支持。
WebDAV工作流程
WebDAV工作流程如图-1 。
用户对存储在WebDAV服务器上的文档进行编辑时,可以对该文档进行锁定以保证自己的修订不会被其他用户覆盖。WebDAV的版本控制还可以让用户明白 文档的哪个版本是最新的,以减少不必要的混乱。
WebDAV的访问控制表提供了对每个文件的读、写和共享许可的高级控制,更进一步提高了系统的安全性,WebDAV的文件管理特性已经使它成为传统文档 管理产品性价比很高的一个替代方案。任何一个支持WebDAV的Web服务器都能提供安全创作的完整系统。
支持WebDAV的服务器软件
目前Apache 服务器和IIS (5.0以上版本)服务器都支持WebDAV。这里主要介绍一下Apache 服务器的支持情况,Apache从1.x 版本开始通过mod_dav支持webdav ,不过这个模块目前已经停止了开发,可以通过http://www.webdav.org/mod_dav/ 了解。
推荐您在Apache 2.0 和2.2 的版本上使用Webdav 。
Webdav 的Apache 2.X系列服务器上的设置
(1) 自己编译apache 服务器
对于自己编译的Apache 2.2 或者2.0服务器,编译是请加入参数:enable-dav 。
编译完成后执行以下命令:
# cd
/
etc
/
apache2
/
mods
-
enabled
/
# ln
-
s
/
etc
/
apache2
/
mods
-
available
/
dav.load dav.load
# ln
-
s
/
etc
/
apache2
/
mods
-
available
/
dav_fs.load dav_fs.load
# ln
-
s
/
etc
/
apache2
/
mods
-
available
/
dav_fs.conf dav_fs.conf
在apache 服务器的配置文件中加入两行:
DAVLockDB
/
tmp
/
DAVLock
DAVMinTimeout
600
!
建立Webdav 目录,并且添加访问权限:
# mkdir
/
var
/
www
/
webdav
# chown root:apache
/
var
/
www
/
webdav
# chmod
750
/
var
/
www
/
webdav
建立一个最简单的配置:
<Directory /var/www/webdav>
Dav On
</Directory>
到此为止在Apache 服务器配置Webdav 工作基本完成,不过目前它的安全性能不好。后面笔者会逐步完善。
(2) 在RHEL 5.0 自身的Apoache 2.2.3服务器上设置Webdav
检查编译情况
首先查看RHEL 5.0 自身的Apoache 2.2.3是否编译了dav模块,使用httpd -M 命令,如图2 。
从图2 可以看到在在RHEL 5.0 自身的Apoache 2.2.3服务器上已经编译了Webdav。
修改Apache 配置文件
下面检查Apache服务器配置文件httpd.conf ,加载dav模块情况,把以下两行前的# 去掉。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
把以下的# 去掉
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
添加一行
DAVMinTimeout 600!
设置客户端访问webdav目录
<Directory /var/www/webdav/joe/>
require user joe
</Directory>
设置权限
# mkdir /var/www/passwd
# htpasswd -c /var/www/passwd /htpass.dav joe
# chown root:apache /etc/apache2/passwd/htpass.dav
# chmod 640 /var/www/passwd /htpass.dav joe
# mkdir /var/www/webdav/joe
# chown apache:apache /var/www/webdav/joe
# chmod 750 /var/www/webdav/joe
说明:以上命令是Apache 服务器设置的基本功,这里笔者就不赘述了。请读者自己理解。或者查看手册。
Webdav 在Windows 平台的Apache 服务器上的设置
下面简单介绍一下Apache 服务器在Windows 操作系统下的webdav配置方法。
修改配置文件httpd.conf把以下三行的# 去掉:
LoadModule dav_module modules
/
mod_dav.so
LoadModule dav_fs_module modules
/
mod_dav_fs.so
Include conf
/
extra
/
httpd
-
dav.conf
修改httpd-dav.conf配置文件为如图3的内容:
说明:这里笔者使用的是基本认证方法,另外摘要认证比基本认证更加安全,但遗憾的是目前并非所有的浏览器都支持摘要认证,所以大多数情况下用户只使用基本 认证。本节主要介绍基本认证。
建立密码文件
htpasswd.exe
-
c
"
D:/Apache Software Foundation/Apache2.2/DavPwd/user.pwd
"
[email protected]
输入命令后会提示让你输入两次密码。如图4 。
到此为止在Apache 服务器配置Webdav的工作全部完成,后边笔者会介绍如何通过webdav 客户端软件访问服务器。
通过Webdav客户端软件访问服务器
webdav 客户端软件
主要的webdav 客户端软件如表-1 。
说明:一个WebDAV应用就是一个内置WebDAV协议的程序,表-1会覆盖大多数支持WebDAV的流行程序。在Windows下,有一些有名的集成 WebDAV客户端功能的软件,例如Microsoft's Office、Adobe的Photoshop和Macromedia的Dreamweaver。它们都可以直接打开和保存URL,也可以在编辑时大量的 使用WebDAV的锁定。
Windows下的webdav 客户端软件访问Linux 下服务器的使用方法
这里以Microsoft网络文件夹为例。Microsoft是WebDAV规范最早的支持者,最早在Windows 98配置客户端,被称作“网络文件夹”,这个客户端在Windows NT4和2000上也存在。
最早的Webfolders客户端是浏览器的扩展,主要的浏览文件系统的GUI程序,工作良好。在Windows 98,如果“我的电脑”里没有网络文件夹,这个特性需要明确安装。在Windows 2000,只需要添加一个新的“网络位置”,输入URL,WebDAV共享就会弹出让你浏览。 步骤如下 :
1. 为了使用Windows 2003 提供的Web 文件夹,可以先打开“网上邻居”,然后双击“添加网上邻居”,如图5 所示。
2. 在对话框中输入使用HTTP 协议的URL,既可以使用IP 地址也可以使用FQDN。如图-6 所示。
3. 之后单击“下一步”按钮,弹出认证对话框,如图-7 所示。
4. 输入joe的用户名和密码后,单击“确定”按钮进入如图-8 所示的界面。
更改网上邻居的名称后,将会看到如图-9 所示的Web 文件夹。在该界面下,用户可以像使用局域网资源一样来对Web 文件夹进行操作,对站点内容进行更新。如果用户使用浏览器访问此站,将会直接浏览到主页而不会弹出认证界面,这正是我们所需要的结果。
图9 Web 文件夹
注意:为了安全的考虑,当用户更新站点完毕,一定要将此Web 文件夹删除。
Linux下的webdav 客户端软件访问服务器的使用方法
1. 命令行工具
Cadaver是一个用来浏览和修改WebDAV共享的Linux、Unix命令行程序,就像Subversion客户端,它使用了neon的HTTP库 -不需要惊讶,neon和cadaver的作者是同一个人。Cadaver是自由软件(GPL许可证),可以在http://www.webdav.org/cadaver/ 下载。 使用cadaver就像使用命令行的FTP程序,因此它很适合基本的WebDAV调试。它可以以压缩方式上传和下载文件,也会检验属性、拷贝、移动、锁定 和解锁文件:
$ cadaver http://host/repos
dav:/repos/> ls
Listing collection `/repos/': succeeded.
Coll: > foobar 0 May 10 16:19
> playwright.el 2864 May 4 16:18
> proofbypoem.txt 1461 May 5 15:09
> westcoast.jpg 66737 May 5 15:09
dav:/repos/> put README
Uploading README to `/repos/README':
Progress: [=============================>] 100.0% of 357 bytes succeeded.
dav:/repos/> get proofbypoem.txt
Downloading `/repos/proofbypoem.txt' to proofbypoem.txt:
Progress: [=============================>] 100.0% of 1461 bytes succeeded.
DAV Explorer是另一个独立运行的WebDAV客户端,使用Java编写,有一个类Apache的许可证,网站是http://www.ics.uci.edu/~webdav/ 。DAV Explorer与cadaver功能差不多,优点可移植,并有一个用户友好的GUI程序。它也是最早的支持WebDAV访问控制协议(RFC 3744)的客户端。
2. 浏览器集成
一些流行的文件浏览器程序支持WebDAV扩展,允许用户浏览DAV共享如同访问本机,并允许基本的目录树操作。例如,Windows的资源管理器可以把 WebDAV服务器看作一个“网络位置”,用户可以从桌面托拽文件到这个目录,或者是重命名、拷贝或者删除文件。但是这只是文件浏览器的特性,DAV共享 对于普通的应用不可见,所有的DAV操作需要通过浏览器界面完成。Linux 下包括:Nautilus,Konqueror。
Nautilus是GNOME桌面(http://www.gnome.org ) 官方的文件管理/浏览器,KDE桌面(http://www.kde.org )的 则是Konqueror。两个应用程序都是浏览器级别的WebDAV客户端,对自动版本化的版本库工作良好。 GNOME的Nautilus里,从File menu选择Open location,并且输入URL。版本库就会显示出来,就像其他文件系统。
KDE的Konqueror里你需要在地址栏使用webdav://模式来输入URL,如果你输入http://的URL,Konqueror会像普通的 web浏览器。你会看到mod_dav_svn输出的普通HTML目录列表。通过输入webdav://host/repos代替http://host/repos ,Konqueror就成为了一个WebDAV客户端, 并且按照文件系统的方式显示版本库。 在Konqueror里首先也要进行身份认证。如图-10 。
图-10在Konqueror首先也要进行身份认证
通过身份认证,即可进行webdav管理,如图11 。
图11 在Konqueror浏览器中进行webdav管理
Mac OS X的webdav客户端软件
Apple的OS X操作系统是集成的文件系统级的客户端,通过Finder,选择Go menu的Connect to Server条目,输入WebDAV的URL,会在桌面显示一个磁盘,就像其他装载的卷。
使用SSL保护webdav安全
启用SSL加强通信安全,由于WebDAV虚是创建在Web站点下的,所以可以利用SSL来对通信加密,保障数据数据安全。配置非常简单,下面是一个虚拟 主机的SSL配置Webdav的配置实例,关于SSL在配置是Apache 服务器设置的基本功,这里笔者就不赘述了。请读者自己理解。或者查看手册。
NameVirtualHost *:443
<VirtualHost 10.1.1.2:443>
DocumentRoot /home/bob/web/html/
ServerName dav.mydomain.com
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
DavLockDB /tmp/mydomainDavLock
<Directory /home/bob/web/html/>
AllowOverride All
Order allow,deny
Allow from all
DAV On
</Directory>
</VirtualHost>
总结:
到此为止,我们介绍了Apache 服务器的webdav 配置以及客户端软件的使用方法。