如何安装WebDAV与Lighttpd在Debian 8(Jessie)

本指南解释如何在Debian 8(Jessie)服务器上使用Lighttpd设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控...

本指南介绍如何在Debian 8(Jessie)服务器上使用Lighttpd设置WebDAV。 WebDAV代表基于Web的分布式创作和版本控制 ,是HTTP协议的一组扩展,允许用户直接在Lighttpdd服务器上编辑文件,以便不需要通过FTP下载/上传。 当然,WebDAV也可以用来上传和下载文件。

1初步说明

我在这里使用IP地址为192.168.1.100的Debian 8服务器。 我的设置是基于Debian的最小服务器教程 ,但是任何不运行Web服务器的Debian系统都应该是正常的。

2安装WebDAV

您可以安装lighttpd(如果尚未安装),lighttpd WebDAV模块和apache2-utils软件包(其中包含我们稍后将需要为WebDAV共享生成密码文件的htpasswd工具),如下所示:

apt-get -y install lighttpd lighttpd-mod-webdav apache2-utils

之后,我们必须确保目录/ var / run / lighttpdwww-data用户和组拥有。 该目录将包含WebDAV所需的SQLite数据库:

chown www-data:www-data /var/run/lighttpd/

接下来,我们启用模块mod_authmod_webdav

lighty-enable-mod auth
lighty-enable-mod webdav

重新加载Lighttpd之后:

service lighttpd force-reload

3创建虚拟主机

现在我将在目录/ var / www / web1 / web中创建一个Lighttpd vhost( www.example.com )。 如果您已经拥有要启用WebDAV的虚拟主机,则必须根据您的情况调整本教程。

首先,我们创建目录/ 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并将以下vhost添加到文件的末尾:

nano /etc/lighttpd/lighttpd.conf

[...]
$HTTP["host"] == "www.example.com" {
  server.document-root = "/var/www/web1/web"
}

之后我们重新启动lighttpd:

service lighttpd restart

4配置WebDAV的虚拟主机

现在我们用用户测试创建了WebDAV密码文件/var/www/web1/passwd.dav (如果-c开关不存在则创建该文件):

htpasswd -c /var/www/web1/passwd.dav test

您将被要求输入用户测试的密码。

(如果/var/www/web1/passwd.dav已经存在,请不要使用-c开关,因为这将从头开始重新创建文件,这意味着您丢失了该文件中的所有用户!)

现在我们更改/var/www/web1/passwd.dav文件的权限 ,以便只有rootwww数据组的成员可以访问它:

chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav

现在我们用/etc/lighttpd/lighttpd.conf修改我们的vhost,看起来如下:

nano /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"
dir-listing.activate = "enable" 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,但仍可以访问整个文档根目录虚拟主机 该vhost的所有其他URL仍然是“正常”的HTTP。

之后重新启动Lighttpd:

service lighttpd restart

5测试WebDAV

我们现在将安装cadaver ,一个命令行WebDAV客户机:

apt-get -y install cadaver

要测试WebDAV是否工作,请输入:

cadaver http://www.example.com/webdav/

应提示您输入用户名。 输入测试 ,然后输入用户测试的密码。 如果一切顺利,您应该被授予访问权,这意味着WebDAV工作正常。 键入退出以离开WebDAV shell:

root@server1:/home/administrator# 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:/home/administrator#