13
2022
07
17:15:34

webdav 软件_记录我曲折的webDav配置之路(Windows篇)



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

承接macbook篇,这次配置我自己的笔记本电脑(win7系统)的webdav服务器虽然也花了两天,但我认为在windows上配置还是相对更友好的,花的时间多主要是我走了弯路。

好在最后还是成功了,心里一块大石头落了地,现在的成果可以让我最后不至于交不了差。

1、配置windows版webdav路上的坑

百度“windows7 配置 webdav”,出来最多的结果肯定是让你启用IIS功能的。毕竟是系统自带的功能,兼容性最好对吧?

win7创建webdav - 百里孤坟 - 博客园www.cnblogs.com

6a09508a45fcedb2b1691a5bd3be16d6.png

然而IIS完美诠释了什么叫“微软出品,必属淘汰品”。


a11b9b9e9ebdb02cefab3219da12831e.png

如何解决这个问题,百度肯定能得到各类牛鬼蛇神的答案。大致有什么你的系统不是正版啦,你应该开启一些权限啦,你要调低UAC的等级啦。在众多方案中我基于我的本本可能缺失了一些组件的猜测,选择了下载Microsoft Web Platform Installer的方案。

Microsoft Web Platform Installer 2.0 Betadownload.pchome.net

00db752fabdb63fe53c17c22464fb82d.png

然而史一般的体验告诉我,我不应该再在这个问题上纠结下去了。

我误打误撞找到了一篇吐槽的帖子,(V2EX?有点熟欸?我想起来了配置macbook的时候我也找过这上面的吐槽贴。)

https://www.v2ex.com/t/598070www.v2ex.com

成功人士的博文永远是顺顺利利的,有时只有吐槽贴才能给钻牛角尖的你指条明路。

帖子里有提到另外两种工具:nextcloud和caddy。我先搜了nextcloud,吹的很好但是始终绕不开Linux,可是我已经没时间研究换Linux系统了。于是又去看了caddy。

几乎所有的教程都推荐官方网站去下载,我一看官网还挺好的,适配系统,要什么插件自己选。

Download Caddycaddyserver.com

4bbeb2aa50e0045d2feb0eddb520dffe.png

但是下载下来之后就是不能用,只闪退。

后来又找了一个github的版本,这个下载下来居然是能用的,打开之后命令行界面一直停着,根据教程也能出现404页面。

https://github.com/caddyserver/caddygithub.com

不是吧,v2还没v1好用?

用v1呗?可是里面没说加了webdav插件啊?

那之后再加?搜索加载插件的方法,最多的答案是从官网下载的时候就勾选好插件。

这,这,这……第一天就这么过去了。

2、再会apache

晚上在家的时候我就在想,我本本上需要的不过是一个服务器架设软件。caddy提供的功能如此,nextcloud提供的是如此,那什么可道云、群晖,也是如此。

那可不可以用apache来做?它不至于不做windows版本,而且也不至于windows版本就把webdav这些东西去掉。

Windows下配置Apache服务器 - 航行 - 博客园www.cnblogs.com

7909b10ed7b42009c82b6bcd94a9f091.png

第二天,apache的配置过程异常简单。毕竟只要下载一个安装包,修改文件的过程也是在macbook上实操过的。windows启动apache更简单明了,可以直接去服务列表启动。

不过二者的httpd.conf文件确实有略微差别。

再搜索一篇配置webdav的帖子。

Apache 2.2.x 配置WebDAVwww.yiibai.com

为了保持一致性,我把webdav服务器搬到了htdocs文件夹下面,作为apache服务器的子目录。上传文件的位置自然也是uploads。

另外需要注意的是用cmd执行htdigest -c "%APACHE_INSTALLED_PATH%/user.passwd" DAV-upload admin命令前,需要把目录先cd到apache文件夹下的bin文件夹位置,不然会反馈找不到这个命令。看来bin文件夹里有很多功能文件。

博文推荐的BitKinex一点也不含糊,很顺利地完成了测试webdav服务器的功能。可以在win7本本上访问127.0.0.1/uploads文件夹了。

3、恼人的405

我没有急着拆包网购的路由器,先用手机热点使macbook和win7本本联网。然后试着访问,查到win7的对外IP地址(当然是自动分配的浮动ip),改成该ip下的uploads文件夹,用macbook上的浏览器可以访问成功!

这表明服务器搭建ok,是可以通过联网访问的。

不过代码改完ip之后,用ipad模拟器测试,上传还是失败,提示:

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed using AFNetworkingstackoverflow.com

84372cc871ebf7d4c6cccb8115dfd2c9.png

把3840这个error修复掉其实有很多种方法,stackoverflow里介绍可能的是返回数据里存在较多Fragments,建议用NSJSONReadingAllowFragments修复。但我推测更可能的原因是windows搭建的webdav服务器并没有返回JSON格式的数据,所以用

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];

也会报3840的错误。

如果按视频教程的方法设置manager.responseSerializer为AFHTTPRequestSerializer可能更好一点。反正我的目的是用PUT方法上传文件即可,拿到服务器返回的二进制数据也不需要解析。

但接下来的报错就很麻烦了:

Error Domain=AFNetworkingErrorDomain Code=-1011 “Request failed: method not allowed (405)”

method not allowed,PUT方法不被接受!?我配置好了webdav呀!macbook更新系统后也运行的好好的呀。

看来,其中还是存在一些问题,介于搜到的大多数答案都认为是服务器的问题,我拿BitKinex试了下直接拖拽上传到uploads,果不其然地报错了。也是put方式不被接受,服务器返回数据里明确指出了允许的方法包含GET POST OPTIONS HEAD等,但是没有PUT和DELETE

怎么让apache重新支持PUT方法?中文博客大多让你改httpd.conf文件,

其中有一段

<Directory "/var/www/html/doc">

Dav On

AllowOverride None

Options All

Order allow,deny

Allow from all

</Directory>

只要加上Order allow,deny或者Allow from all

开启apache服务时就会报错,如果不加,则没有任何效果,还是不支持PUT。

一些建议我去看文档的,比如增加

<LimitExcept GET OPTIONS>

require user admin

</LimitExcept>

之类的,也没有任何效果。(这东西httpd.conf里没有,但httpd-dav.conf里有,不过我在GET后面加了POST也没啥效果)

stackoverflow没啥有营养的东西,比如这篇

How to enable and use HTTP PUT and DELETE with Apache2 and PHP?stackoverflow.com

84372cc871ebf7d4c6cccb8115dfd2c9.png

就是让你放弃PUT,采用更安全的编写网络端php脚本的方式用POST实现上传。

没啥意义,PUT安不安全不是我现阶段考虑的事。

后来我找到了一篇可能是众多方案老祖宗的博文。

上传文件之PUT方法上传(服务器配置不当)_千寻的博客-CSDN博客_put上传文件blog.csdn.net

e3ab73eeb74bc479139a60667291c891.png

它提到Directory代码块里面,只需要添加一句DAV On即可。

但我的apache版本里除了Require all granted和AllowOverride None,其它都没有。

试试把这一句添加到最后,其它不管?


b5c19b30494cba31f2fe1c505026ce10.png

重新启用apache服务,成功!使用BitKinex拖拽上传,成功!

(开启文件锁那一步我没删,估计也是起到作用的)

最后用模拟器调试代码,也成功了!

成功了!


本文链接:http://www.hqyman.cn/post/2468.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: