AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 892435
Accepted
Matthieu Ducorps
Matthieu Ducorps
Asked: 2018-01-17 04:41:50 +0800 CST2018-01-17 04:41:50 +0800 CST 2018-01-17 04:41:50 +0800 CST

让 Webdav 工作

  • 772

这是一个星期我试图让 webdav 在 Vhost 上工作但没有任何成功......
这是我的设置:
Debian 9
Apache 2.4
Virtualmin 6.01

SuexecUserGroup "#1039" "#1038"
ServerName dav.mydom.com
DocumentRoot /home/dav/public_html
ErrorLog /var/log/virtualmin/dav.mydom.com_error_log
CustomLog /var/log/virtualmin/dav.mydom.com_access_log combined
<Directory "/home/dav/public_html">
 Options Indexes MultiViews
 AllowOverride None
 Require all granted
</Directory>
Alias /webdav /home/dav/public_html
<location /webdav>
 Dav on
 AuthType Basic
 AuthBasicProvider file
 AuthName "WebDav"
 AuthUserFile /home/dav/public_html/.htpasswd
 <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK OPTIONS>
  Require valid-user
 </Limit>
</location>
ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://localhost:8005/home/dav/public_html/$1
RemoveHandler .php
RemoveHandler .php7.0
php_admin_value engine Off

试图用尸体测试它,我收到消息我什至无法输入我的用户名并通过

[matth@www ~]# cadaver http://dav.mydom.com/webdav/
Authentication required for WebDav on server `dav.mydom.com':
Username: 
Authentication aborted!
Could not open collection:
Could not authenticate to server: rejected Basic challenge
dav:/webdav/? 

我还通过创建 .netrc 通行证来自动进行身份验证进行测试,但我很好:

[matth@www ~]# cadaver https://dav.mydom.com/webdav
Could not access /webdav/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to `db.ducorporation.com' closed.
dav:!> 

访问日志

s.r.c.ip - - [18/Jan/2018:04:03:29 +0100] "OPTIONS /test.txt HTTP/1.1" 200 4236 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:30 +0100] "HEAD /test.txt HTTP/1.1" 200 620 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:31 +0100] "OPTIONS /test.txt HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:32 +0100] "HEAD /test.txt HTTP/1.1" 200 620 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:32 +0100] "OPTIONS /test.txt HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:33 +0100] "PUT /test.txt HTTP/1.1" 405 938 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"

error.log为空

使用 suexec,我确保 Apache 在正确的用户下运行,并且在身份验证后,对任何文件的访问也可以从 Web 浏览器工作。
也经过测试
- 不使用location但directory
- 禁用目录索引
- Auth none/Digest/Basic
- DocumentRoot 路径上的 Webdav 文件夹以及子文件夹
- 将 public_html 文件夹的所有权更改为 apache 用户 - 我不做的其他事情不记得了

通过所有这些测试,我得到了同样的错误

使用 Firefox/litmus/cadaver/webdav 客户端应用程序完成了我的测试使用 Firefox 和 webdav 应用程序,我可以读取和下载文件,但不能编辑PUT获取405 error(意思PUT 是不允许的,但在我的<Limit>部分允许)使用 litmus/尸体至今没机会做任何事……

希望我足够清楚
任何输入将不胜感激

编辑:添加了 apache 日志

马思

apache-2.4
  • 1 1 个回答
  • 4452 Views

1 个回答

  • Voted
  1. Best Answer
    Matthieu Ducorps
    2018-01-30T18:48:08+08:002018-01-30T18:48:08+08:00

    这是我最终设法使其工作的方法:
    此配置适用于SSL vhost 的 Apache 2.4,HTTP重定向到SSL。
    我必须设置一个专用文件夹,其中 Apache 用户具有专用的读/写访问权限。

    为了更安全,我希望 Apache 以特定用户身份运行,但今天似乎最简单的方法是使用MPM-ITK显然与MPM-Prefork我现在使用的模块不兼容的方法。
    一旦我了解了从MPM-Prefork`MPM-ITK` 迁移的后果,我会尝试一下。

    欢迎对安全改进提出任何意见!

    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Headers "origin, content-type, cache-control, accept, authorization, if-match, destination, overwrite"
    Header always set Access-Control-Expose-Headers "ETag"
    Header always set Access-Control-Allow-Methods "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK"
    Header always set Access-Control-Allow-Credentials "true"
    
    RewriteEngine On RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ blank.html [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]
    ServerName my.domain.com
    DocumentRoot /home/www/public_html
    ErrorLog /var/log/virtualmin/my.domain.com_error_log
    CustomLog /var/log/virtualmin/my.domain.com_access_log combined
    DavLockDB /home/www/public_html/DavLock
    <Directory /home/www/public_html>
    RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://my.domain.com/$1 [R,L]
    Options Indexes MultiViews SymLinksIfOwnerMatch
    AllowOverride None
    Require all granted
    </Directory>
    
    Alias /webdav /home/www/public_html
    
    <Location "/webdav">
     Dav on
     DirectoryIndex none
     AuthType Basic
     AuthBasicProvider file
     AuthUserFile /home/www/public_html/.htpasswd
     AuthName "WebDav"
     <Limit GET HEAD POST PUT OPTIONS MOVE DELETE COPY LOCK UNLOCK>
      Require valid-user
     </Limit>
     <Limit  OPTIONS>
      Require all granted
     </Limit>
    DavDepthInfinity off
    </Location>
    SSLEngine on
    SSLCertificateFile /home/my/ssl.cert
    SSLCertificateKeyFile /home/my/ssl.key
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCACertificateFile /home/my/ssl.ca
    RemoveHandler .php
    RemoveHandler .php7.0
    php_admin_value engine Off
    RedirectMatch ^/(?!webdav) "https://my.domain.com/webdav"
    
    • 1

相关问题

  • Apache2 - SSL 不工作

  • Apache <VirtualHost> 标签,如果客户端的 IP = x 则不重定向... 怎么做?

  • 我无法启用我的网站?[关闭]

  • SELinux 阻止 Apache 写入文件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve