在 CentOS 上设置 WebDAV 的问题

在 CentOS 上设置 WebDAV 的问题

我正在尝试在装有 Apache 2.2 的 CentOS 6.5 服务器上设置 WebDAV,但遇到了问题。

我正在遵循这个指南:http://www.howtoforge.com/how-to-set-up-webdav-with-apache2-on-centos-5.5

我已经验证所需的 mod_dav.so 和 mod_dav_fs.so 模块已启用。

我已经创建了我的虚拟主机条目,如下所示:

<VirtualHost 11.22.33.44:80>
SuexecUserGroup "#500" "#500"
ServerName dav.naijastories.com
DocumentRoot /home/myuser/public_html/
ScriptAlias /cgi-bin /home/myuser/public_html/cgi-bin
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/myuser/public_html/>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/myuser/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/myuser/fcgi-bin/php5.fcgi .php5
</Directory>

Alias /webdav /home/myuser/public_html

<Location /webdav>
DAV On
AuthType Basic
AuthName "myuser"
AuthUserFile /home/myuser/.myuserpassfile
Require valid-user
</Location>

FcgidIOTimeout 600
</VirtualHost>

我已确保 .myuserpassfile 确实包含 myuser 的正确凭据。

做出这些更改后,我重新启动了 Apache 服务。

但是当我导航到 dav.naijastories.com 时,我没有看到任何像目录结构的东西。

我在这里做错了什么?

编辑:

我在这方面取得了进展。

为了更清楚地说明这一点,我实际上是试图从我的 Windows PC 轻松访问 CentOS 机器上的文件;我以为我必须通过我的浏览器来做到这一点,但事实证明通过 Windows 资源管理器来做到这一点更容易。

首先,我将虚拟主机部分改为如下形式:

<VirtualHost 11.22.33.44:80>
ServerName dav.mysite.com
DocumentRoot /home/myuser/public_html

<Directory /home/myuser/public_html>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all

DAV On
AuthType Digest
AuthName "dav"
AuthDigestDomain http://dav.mysite.com
AuthUserFile /home/myuser/.htdigest
Require valid-user
</Directory>

</VirtualHost>

在哪里:

  • 11.22.33.44是网站主机的 IP 地址;
  • dav.mysite.com(在 ServerName 中) 是主站点的一个子域,它映射到要通过 WebDAV 共享的文件目录;
  • /主页/我的用户/public_html(在 DocumentRoot 中)是包含要共享的文件的目录;
  • 戴夫(在 AuthName 中)是子域名的第一部分;
  • /home/myuser/.htdigesthtdigest是用来保存被授权访问 WebDAV 共享文件的用户的凭证而创建的文件;
  • http://dav.mysite.com(在 AuthDigestDomain 中)与 ServerName 具有完全相同的主机名。

将其添加到httpd.conf文件并重新启动 apache 后,在我的 Windows PC 上,我执行以下操作:

  • 打开Windows资源管理器;
  • 右键单击“网络”,然后单击“映射网络驱动器”;
  • 在“文件夹”字段中输入http://dav.mysite.com(与 AuthDigestDomain 的值相同);
  • 选择“使用不同的凭据连接”;
  • 点击‘完成’;
  • 在出现的登录框中,使用我在创建 .htdigest 文件时提供的相同凭据

完成此操作后,我就可以登录并查看我的文件。

但是,我无法写入我在资源管理器中看到的文件夹。

每当我这样做时,我都会收到此消息:

“意外错误导致您无法创建文件。如果您继续收到此错误,您可以使用错误代码来搜索有关此问题的帮助。错误 0x80070780:系统无法访问该文件。”

查看 apache 日志,我看到如下错误:

[Sun Nov 09 16:40:55 2014] [error] [client 11.22.33.44] client denied by server configuration: /home/myuser/public_html/.htaccess
[Sun Nov 09 16:40:55 2014] [error] [client 11.22.33.44] (13)Permission denied: access to /webdav/index.html denied
[Sun Nov 09 16:40:55 2014] [error] [client 11.22.33.44] (13)Permission denied: access to /webdav/index.html.var denied
[Sun Nov 09 16:40:56 2014] [error] [client 11.22.33.44] Unable to PUT new contents for /wptest/New Text Document.txt.  [403, #0]
[Sun Nov 09 16:40:56 2014] [error] [client 11.22.33.44] (13)Permission denied: An error occurred while opening a resource.  [500, #0]

我对此感到困惑。我的 .htaccess 文件中没有任何内容限制访问(我甚至没有将文件复制到那里),并且我的机器上没有 webdav 目录。

有任何想法吗?

相关内容