现在是最简单的部分。在本节中,我们将为 Apache 根目录下的一个目录启用 WebDAV。
请验证以下 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 |
该指令必须放置在任何容器之外。
如上所述,必须为 DAVLockDB 创建一个目录,该目录可以由 Web 服务器进程写入。通常,Web 服务器进程在用户 'nobody' 下运行。请使用以下命令验证您的系统。
ps -ef | grep httpd |
# cd /usr/local/apache # mkdir var # chmod -R 755 var/ # chown -R nobody var/ # chgrp -R nobody var/ |
启用 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> |
如前一节所述,所有 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/ |
最后,您必须运行 Apache 自带的配置测试例程,以验证httpd.conf :
# /usr/local/apache/bin/apachectl configtest |
中的语法。如果您收到错误消息,请验证您是否正确遵循了上述所有步骤。如果您无法弄清楚错误消息,请随时通过电子邮件将错误消息发送给我 (saqib@seagate.com)。
如果配置测试成功,请启动 Apache Web 服务器
# /usr/local/apache/bin/apachectl restart
现在您拥有了启用 WebDAV 的 Apache 服务器,具有 LDAP 身份验证和 SSL 加密。
我们刚刚实现的 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 |