如何基于Lighttpd在Debian Ubuntu上配置WebDAV - lifuzu/cafe GitHub Wiki
本文介绍了如何基于Lighttpd,在Debian/Ubuntu Linux服务器上配置WebDAV。WebDAV是Web-based Distributed Authoring and Versioning的缩写,这是一套HTTP协议的扩展,允许用户可以直接编辑Lighttpd服务器上的文件。这样用户就不需要通过FTP工具把文件下载,修改,再上传这样的麻烦了。当然,WebDAV也可以用来上传和下载文件。
注意:本文不能保证同样方法,适合所有读者,请在试验之前备份系统。如果出现服务器文件丢失,或者任何损失,作译者概不负责。
1、预备知识
一台Debian服务器,IP地址为 192.168.0.100
2、安装WebDAV
你需要安装lighttpd,如果还没有安装过的话。你还需要安装 lighttpd WebDAV 模块,apache2-utils包(这个包含有htpasswd工具,后面我们会用它来产生WebDAV共享的密码文件),命令如下:
chown www-data:www-data /var/run/lighttpd/
接下来,我们使能模块 mod_auth 和 mod_webdav
lighty-enable-mod auth
lighty-enable-mod webdav
然后,重新加载lighttpd
/etc/init.d/lighttpd force-reload
3、创建一个虚拟的主机
现在,我要创建一个lighttpd虚拟主机( www.example.com ), 目录在/var/www/web1/web。如果你已经有一个虚拟主机,你需要根据你的具体情况调整一下。
首先,我们创建目录/var/www/web1/web,并保证这个目录属于lighttpd用户(www-data)。
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web
然后,我们打开文件/etc/lighttpd/lighttpd.conf
vi /etc/lighttpd/lighttpd.conf
把下面一行加在文件的末尾:
[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}
之后,我们需要重启lighttpd:
/etc/init.d/lighttpd restart
4、配置WebDAV虚拟主机 现在我们创建WebDAV密码文件:/var/www/web1/passwd.dav,用户名为test。
htpasswd -c /var/www/web1/passwd.dav test
(开关 -c 表示创建文件如果不存在) 你需要为用户 test 键入密码。 (注意:如果文件passwd.dav已经存在,不用使用 -c 开关。因为它会导致重新创建这个文件,从而使得你丢失掉所有用户!) 现在我们改变文件/var/www/web1/passwd.dav的属性,使得只有root和www-data组用户才能读写它:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
接下来,我们需要修改vhost文件 /etc/lighttpd/lighttpd.conf
vi /etc/lighttpd/lighttpd.conf
让它看起来就像一下内容:
$HTTP["host"] == “www.example.com” {
server.document-root = “/var/www/web1/web”
alias.url = ( “/webdav” => “/var/www/web1/web” )
$HTTP["url"] =~ “^/webdav($|/)” {
webdav.activate = “enable”
webdav.is-readonly = “disable”
webdav.sqlite-db-name = “/var/run/lighttpd/lighttpd.webdav_lock.db”
auth.backend = “htpasswd”
auth.backend.htpasswd.userfile = “/var/www/web1/passwd.dav”
auth.require = ( “” => ( “method” => “basic”,
“realm” => “webdav”,
“require” => “valid-user” ) )
}
}
alias.url关键字(以及$HTTP["url"] =~ “^/webdav($|/)”)表示:当你访问/webdav,WebDAV就会被触发。你能够访问虚拟主机的整个文件根目录。所有虚拟主机上的其它URL仍然是正常的HTTP协议。 重启lighttpd:
/etc/init.d/lighttpd restart
5、测试WebDAV 现在我们需要安装一个工具cadaver。这是一个命令行方式的WebDAV客户端:
apt-get install cadaver
看看WebDAV是否正常工作,键入:
cadaver http://www.example.com/webdav/
你应该提示输入用户名。键入test,然后是刚才输入的test用户密码。如果一切顺利,你应该能够获得访问权限,这就表明WebDAV设置正常。敲入quit退出WebDAV环境:
root@server1:~# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com’:
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com’ closed.
root@server1:~#
6、配置Windows XP客户端来连接WebDAV服务器
顶贴后发布
7、配置Linux(GNOME)客户端来连接WebDAV服务器
顶贴后发布
8、链接:
WebDAV:http://www.webdav.org/
Lighttpd:http://www.lighttpd.net/
Debian:http://www.debian.org/