Apache-Httpd
Webdav 無法連接:405 Method Not Allowed
我有一台執行 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 配置。將上面的程式碼複製到該文件中,一切正常。