编者按:随着办公方式的灵活化,各个企业当下对在线协作的需求也各有不同。企业内部协作通常采用FTP服务器或微软SharePoint等平台实现,但是长距离的在线协作,则往往需要通过HTTP实现。以下介绍在Linux平台下搭建远程协作平台的协议:WebDAV。
WebDAV协议允许用户通过HTTP保存和共享文件,这是一个非常有价值的突破,因为HTTP通常是只读的,除了访问文档外,用户可以编辑和重新上传它们,你可以将其理解为一种基于HTTP的网络文件系统,或一种支持长距离文件协作的方法。WebDAV协议支持文件锁和版本控制,因此,当你访问到WebDAV文件夹后,你就可以编辑文件,不用担心会覆盖其他人的编辑成果。时至今日,虽然在线协作的方法越来越多,但WebDAV在文件共享方面仍然有它的用处,特别是有很多的服务器和客户端软件支持它。
和FTP不一样,HTTP提供强认证和加密,以及缓存和代理支持,因为WebDAV是工作在HTTP之上的,因此它也可以利用HTTP的这些特性,SSH可能是另一种选择,但SSH在移动文件方面有一些限制,并且也没有那么多客户端默认就支持它。
WebDAV和Apache2
Apache服务器通过加载ismod_dav可以支持WebDAV文件夹,在Debian或Ubuntu上,输入下面的命令开启这个功能:
a2enmod dav a2enmod dav_fs /etc/init.d/apache2 restart |
Mod_dav为服务器添加了WebDAV功能,mod_dav_fs提供后台支持,允许访问服务器文件系统中的资源,更多关于dav和dav_fs的详细信息,请参考Apache的帮助手册。
你也可以设置通过WebDAV可以访问的文件夹,如:
<Directory "/web/juliet/davfolder"> Dav On Order Allow,Deny Allow from all AuthType Digest AuthName WebDAV-Realm AuthUserFile "/usr/var/webdav.passwd" require user juliet </Directory> |
这里最重要的一行是Dav On,它将这个目录转换成一个WebDAV文件夹,剩下的部分都是对这个目录设置的安全访问限制,在任何目录上开启WebDAV功能之前,最重要的是设置认证,否则就会存在很大的漏洞,这里使用了MD5 Digest认证,将访问权限制到用户名,你也可以使用require valid-user。
为了允许别人写入你的目录,你需要修改它的权限,注意,Apache用户必须能够写入这个目录,再提醒一下,一定要注意安全问题,最好将WebDAV目录和你的网站文件适度地分开。
如果要手动设置WebDAV,你需要在Apache配置文件中添加下面的内容:
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so DAVLockDB ${APACHE_LOCK_DIR}/DAVLock |
然后重启Apache,再设置你要共享的目录。