4. 配置和设置 WebDAV 服务

现在是最简单的部分。在本节中,我们将为 Apache 根目录下的一个目录启用 WebDAV。

4.1. 修改/usr/local/apache/conf/httpd.conf

请验证以下 Apache 指令是否出现在/usr/local/apache/conf/httpd.conf :

  Addmodule mod_dav.c

如果未出现,请添加它。此指令告知 Apache 关于 DAV 功能。该指令必须放置在任何容器之外。

接下来,我们必须指定 Apache 应该存储 DAVLockDB 文件的位置。DAVLockDB 是 WebDAV 的锁定数据库。此目录应可由 httpd 进程写入。

我将 DAVLock 文件存储在/usr/local/apache/var下。我也将此目录用于其他目的。请将以下行添加到您的/usr/local/apache/conf/httpd.conf以指定 DAVLockDB 文件将位于/usr/local/apache/var :

  DAVLockDB      /usr/local/apache/var/DAVLock 

该指令必须放置在任何容器之外。

4.2. 创建 DAVLockDB 的目录

如上所述,必须为 DAVLockDB 创建一个目录,该目录可以由 Web 服务器进程写入。通常,Web 服务器进程在用户 'nobody' 下运行。请使用以下命令验证您的系统。
ps -ef | grep httpd
/usr/local/apache下创建目录,并使用以下命令设置其权限

  # cd /usr/local/apache
  # mkdir var
  # chmod -R 755 var/
  # chown -R nobody var/
  # chgrp -R nobody var/

4.3. 启用 DAV

启用 DAV 是一项简单的任务。要为 Apache 根目录下的目录启用 DAV,只需在该特定目录的容器中添加以下指令

  DAV On

此指令将为该目录及其子目录启用 DAV。

以下是一个示例配置,它将在/usr/local/apache/htdocs/DAVtest上启用 WebDAV 和 LDAP 身份验证。将其放置在/usr/local/apache/conf/httpd.conf文件中。

 DavLockDB /tmp/DavLock
<Directory "/usr/local/apache2/htdocs/DAVtest">
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthName "SMA Development server"
AuthType Basic
LDAP_Debug On
#LDAP_Protocol_Version 3
#LDAP_Deref NEVER
#LDAP_StartTLS On
LDAP_Server you.ldap.server.com 
#LDAP_Port 389
# If SSL is on, must specify the LDAP SSL port, usually 636
LDAP_Port 636
LDAP_CertDbDir /usr/local/apache2/sslcert
Base_DN "o=SDS"
UID_Attr uid
DAV On
#require valid-user
require valid-user 
#require roomnumber "123 Center Building"
#require filter "(&(telephonenumber=1234)(roomnumber=123))"
#require group cn=rcs,ou=Groups
</Directory>

4.4. 创建名为 DAVtest 的目录

如前一节所述,所有 DAV 目录都必须可由 Web 服务器进程写入。在本示例中,我们假设 Web 服务器在用户名 'nobody' 下运行。通常情况是这样。要检查 httpd 在哪个用户下运行,请使用

# ps -ef | grep httpd

创建一个名为 'DAVtest' 的测试目录,位于/usr/local/apache2/htdocs :

# mkdir /usr/local/apache/htdocs/DAVtest

更改目录的权限,使其可由 httpd 进程读写。假设 httpd 在用户名 'nobody' 下运行,请使用以下命令

  # cd /usr/local/apache/htdocs
  # chmod -R 755 DAVtest/
  # chown -R nobody DAVtest/
  # chgrp -R nobody DAVtest/

4.5. 重启 Apache

最后,您必须运行 Apache 自带的配置测试例程,以验证httpd.conf :

# /usr/local/apache/bin/apachectl configtest

中的语法。如果您收到错误消息,请验证您是否正确遵循了上述所有步骤。如果您无法弄清楚错误消息,请随时通过电子邮件将错误消息发送给我 (saqib@seagate.com)。

如果配置测试成功,请启动 Apache Web 服务器

# /usr/local/apache/bin/apachectl restart

现在您拥有了启用 WebDAV 的 Apache 服务器,具有 LDAP 身份验证和 SSL 加密。

4.6. WebDAV 服务器协议合规性测试

我们刚刚实现的 WebDAV 完全符合 WebDAV-2 协议非常重要。如果它不完全兼容,客户端 WebDAV 应用程序将无法正常运行。

为了测试合规性,我们将使用一个名为 Litmus 的工具。Litmus 是一个 WebDAV 服务器协议合规性测试套件,旨在测试服务器是否符合 RFC2518 中指定的 WebDAV 协议。

请从 http://www.webdav.org/neon/litmus/ 下载 Litmus 源代码,并将其放置在 /tmp/downloads 目录中。

然后使用 gzip 和 tar 解压文件

# cd /tmp/downloads
# gzip -d litmus-0.6.x.tar.gz
# tar -xvf litmus-0.6.x.tar
# cd litmus-0.6.x

编译和安装 Litmus 很简单

# ./configure
# make
# make install

make install 将 Litmus 二进制文件安装在/usr/local/bin下,并将帮助文件安装在/usr/local/man

下。要测试您刚刚安装的 WebDAV 服务器的合规性,请使用以下命令

# /usr/local/bin/litmus http://you.dav.server/DAVtest userid passwd