Apache-Httpd

Webdav 無法連接:405 Method Not Allowed

  • August 18, 2016

我有一台執行 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 連接到 localhost 或完全限定名稱,得到相同的響應:

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 模組均已啟用。

有人看到我錯過了什麼嗎?

問題是 Lets Encrypt 配置過程創建了一個我沒有註意到的特定於站點的 ssl 配置。將上面的程式碼複製到該文件中,一切正常。

引用自:https://unix.stackexchange.com/questions/302650