WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web 服务器上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。现在主流的 Web 服务器一般都支持 WebDAV,如需了解更多有关 webDAV 的一些开源或商业项目,可访问 http://webdav.org/。
下面就来介绍一下在 Fedora 的 Apache 服务器中如何配置 WebDAV。首先,当然是安装 Apache 服务器
$ sudo yum install httpd
查看一下 Apache 服务器是否包含了 WebDAV 模块
$ cat /etc/httpd/conf.modules.d/00-dav.conf LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so
确认完了 WebDAV 模块之后,该建立 WebDAV 目录了,这很简单:
$ sudo mkdir -p /var/www/webdav
安全起见,还需为 WebDAV 创建一些用户(当然不创建用户也行,不过记得修改后面的配置文件),可执行以下命令产生密码验证文件
$ sudo htpasswd -cm /var/www/webdav/.htpassword james
提示输入密码时输入该用户的密码;若还需要增加用户 tom,可执行以下命令
$ sudo htpasswd -m /var/www/webdav/.htpassword tom
删除某个用户,如 tom,可以使用下列指令:
$ sudo htpasswd -D /var/www/webdav/.htpassword tom
最后,还需在 Apache 的配置目录 /etc/httpd/conf.d/ 中新建一个名为 webdev.conf 的 WebDAV 配置文件,并输入以下内容
$ sudo nano -w /etc/httpd/conf.d/webdev.conf <IfModule mod_dav_fs.c> DAVLockDB /var/lib/dav/lockdb </ifmodule> Alias /webdav "/var/www/webdav/" <Directory "/var/www/webdav/"> Options Indexes MultiViews IndexOptions FancyIndexing AddDefaultCharset UTF-8 AllowOverride None <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order allow,deny allow from all </IfModule> Dav On # 开启 WebDAV AuthType Basic AuthName "WebDAV Server" AuthUserFile /var/www/webdav/.htpassword #密码验证文件 Require valid-user <Limitexcept Get Options> Require user james </Limitexcept> </Directory>
一切就绪了之后,重启 Apache 服务器
$ sudo service httpd restart
该测试一下 WebDAV 服务了,这只需在浏览器的地址栏中输入 http://localhost/webdav 来访问共享资源了;也可通过 MS Windows 的网上邻居访问。当然,GNU/Linux 也可使用命令行 cadaver 进入访问
$ sudo yum install cadaver $ cadaver http://127.0.0.1/webdav/