Webdav 无法连接:405 方法不允许

Webdav 无法连接:405 方法不允许

我有一台运行 Ubuntu 16.04 的小型服务器。它成功地通过 https 提供网页。

我也想在 Apache 上通过 https 设置 webdav。我很难找到明确设置该内容的教程,并最终使用了来自几个不同教程的信息,因此很可能我在某些时候做了一些矛盾的事情,但我不知道它是什么。

default-ssl-conf 看起来像这样,删除了所有模板注释。除了添加 DavLockDB 指令之外,我没有更改 Alias 命令之前的任何设置。

DavLockDB /var/www/DavLock/davLock
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
            ServerAdmin me@me

            DocumentRoot /var/www/html

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined

            SSLEngine on

            SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                            SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Directory>

            # My Webdav config starts here
            Alias "/webdav" "/var/www/webdav"

            <Directory /var/www/webdav>
                DAV on
                DirectoryIndex disabled
                AuthType Digest
                AuthName "webdav"
                AuthUserFile /etc/apache2/users.password
                Require valid-user
            </Directory>

    </VirtualHost>

通过 cadaver 连接到本地主机或完全限定名称,会得到相同的响应:

jbhelfrich@arm:/etc/apache2/sites-available$ cadaver https://localhost/webdav
Could not access /webdav/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to `localhost' closed.

我也尝试过不使用 /webdav,并得到相同的基本响应。 /var/www/DavLock 和 /var/www/webdav 均属于 www-data

/var/logs/apache2/access.log 显示

::1 - - [10/Aug/2016:20:07:44 +0000] "OPTIONS / HTTP/1.1" 200 229 "-" "cadaver/0.23.3 neon/0.30.1"
::1 - - [10/Aug/2016:20:07:44 +0000] "PROPFIND / HTTP/1.1" 405 501 "-" "cadaver/0.23.3 neon/0.30.1"

error.log 没有显示任何相关内容,并且 other_vhosts_access.log 为空。

alias、dav_fs、dav 和 dav_lock 模块均已启用。

有人看到我缺少什么吗?

答案1

问题是 Lets Encrypt 配置过程创建了一个我没有注意到的特定于站点的 ssl 配置。将上面的代码复制到该文件中,一切正常。

相关内容