无法打开锁定数据库 - Apache WebDAV 设置

无法打开锁定数据库 - Apache WebDAV 设置

我使用 Apache 配置了一个 WebDAV 服务器。以下是我的配置:

DAVLockDB /var/www/DAVLock.db

<Location /majid>
    AllowOverride None
    Options +Indexes
    DAV On
    AuthUserFile /var/www/users.db
    AuthName Authentication
    AuthType Basic
    <Limit GET PUT DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user majid
    </Limit>
</Location>

Alias /majid /var/www/dav/majid

/var/www/DAVLock.dbapache用户和组所有。我可以通过浏览器访问 WebDAV 共享。我在 Windows XP SP3 中配置了WebFolder。但我无法创建文件和文件夹。error_log文件显示:

[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] File does not exist: /var/www/dav/majid/New Folder
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] Could not open the lock database.  [500, #400]
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] (13)Permission denied: Could not open property database.  [500, #1]

有人能帮忙吗?另一个问题是:我们是否需要Options +IndexesWebDAV 客户端列出文件和文件夹,还是只能使用浏览器进行 Web 访问?

答案1

ls -ld /var/www/
drwxr-xr-x. 9 root root 4096 Oct 11 15:54 /var/www/

chown -R apache:apache /var/www/,撤消更改并重试。

答案2

这对我来说是个陷阱,但根据mod_dav

“包含锁数据库文件的目录必须可由 Apache 正在运行的用户和组写入。”

您必须确保您对 DAV 锁定数据库文件具有适当的权限包含该信息的目录。

在我的全新安装中,/var/www/ 目录没有为 apache 组设置写入权限。/var/lib/dav/ 目录默认设置了这些权限,这就是它对 Majid 有效的原因。了解这一点后,您可以在您选择的某个位置创建一个具有适当权限的目录。

(这是一个老问题,但它仍然出现在我的搜索中。我不喜欢配置巫术,所以对我来说,了解为什么Majid Azimi 的配置更改对他很有用。)

答案3

我删除了这一行:

DAVLockDB /var/www/DAVLock.db

并使用 Apache 的默认配置:

<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

现在它运行正常。但我还不知道原因。

答案4

我们在 CentOS 7 上的 Apache WebDav 也遇到了同样的问题,在更改配置后我们修复了这个问题

chcon -R -t httpd_sys_content_rw_t /var/www/{webdav 根文件夹}

此后它完美运行

参考: https://sirion-notes.blogspot.com/2015/09/centos-7-apache-24-webdav-not-so-secure.html

相关内容