如何基于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/

⚠️ **GitHub.com Fallback** ⚠️