1、WebDav 服务器
- 基于 http 协议的 "文件" 服务器。
实现文件的上传/下载/修改/删除。
-
WebDav 权限
- 授权信息的格式 BASIC (用户名:口令)base64
- 安全性并不高,密码很容易被拦截和破解。
应用场景:开发企业级的管理系统,可以用 WebDav 搭建一个内部的文件管理服务器,只是在公司内网使用。
2、配置准备工作
-
1)配置服务器的工作
- 修改了两个配置文件。
- 创建 web 访问用户的用户名和口令。
- 创建了两个目录,并且设置管理权限。
-
2)配置服务器注意事项
- 关闭中文输入法。
- 命令和参数之间需要有 "空格"。
- 修改系统文件一定记住 "sudo",否则会没有权限。
-
3)示例配置环境
- macOS 10.11.6
- macOS 10.13.3
-
4)WebDav 服务器配置脚本文件
WebDav 服务器配置脚本文件下载地址,点击查看软件下载密码获取方法。
下载文件解压后放在非中文路径的文件夹中。
3、配置服务器
-
打开终端,按照下面的操作开始配置,
$
开头的,可以直接拷贝,但是不要拷贝$
。# 切换工作目录 $ cd /etc/apache2 # 备份文件,以防不测,只需要执行一次就可以了,格式 cp (copy 的缩写) (源文件) (目标文件) # 如果后续操作出现错误,可以使用以下命令恢复 $ sudo cp httpd.conf.bak httpd.conf $ sudo cp httpd.conf httpd.conf.bak # 用 vim 打开 httpd.conf 文件(sudo 操作需要输入系统密码) $ sudo vim httpd.conf # 查找 httpd-dav.conf,命令模式下输入 /(查找内容),区分大小写,回车跳转到查找的内容处 /httpd-dav.conf # 将光标移动到 #Include /private/etc/apache2/extra/httpd-dav.conf 行首 # 命令模式下直接按键盘上的 0 键 0 #Include /private/etc/apache2/extra/httpd-dav.conf # 删除行首注释 #,命令模式下直接按键盘上的 x 键 x Include /private/etc/apache2/extra/httpd-dav.conf # 注意:在 macOS 10.10+ 配置时还需要在 httpd.conf 中同样打开以下三个模块 LoadModule dav_module libexec/apache2/mod_dav.so LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so # 保存并退出,命令模式下输入 :wq ,不保存退出为 :q! :wq # 切换工作目录 $ cd /etc/apache2/extra # 备份文件(只要备份一次就行) $ sudo cp httpd-dav.conf httpd-dav.conf.bak # 用 vim 打开 httpd-dav.conf 文件(sudo 操作需要输入系统密码) $ sudo vim httpd-dav.conf # 查找 Digest,命令模式下输入 /(查找内容),区分大小写,回车跳转到查找的内容处 /Digest AuthType Digest # 进入编辑模式,命令模式下直接按键盘上的 i 键 i # 将 Digest 修改为 Basic AuthType Basic # 返回到命令行模式,编辑模式下直接按键盘上的 esc 键 esc # 保存并退出,命令模式下输入 :wq ,不保存退出为 :q! :wq # 切换工作目录,切换保存 WebDav 服务器配置脚本文件的目录 $ cd (保存 put 脚本的目录) # 以管理员权限运行 put 配置脚本(对于 macOS 10.11+ 用户,需要关闭 SIP 安全设置) $ sudo ./put # 输入系统密码 (当前用户开机密码) # 设置两次 WebDav 密码 adminpasswd(密码随便设置) # 如果出现以下提示,表示配置完成 drwxr-xr-x 2 _www _www 68 3 30 11:50 uploads -rw-r--r-- 1 root _www 44 3 30 11:50 user.passwd drwxr-xr-x 2 _www _www 68 3 30 11:50 var # 设置的用户名为:admin,密码为:adminpasswd(上面两次输入的 WebDav 密码) # 打开 Finder,在 Finder 的菜单中依次选择 前往 => 连结服务器(command + k) # 在弹出的对话框的服务器地址栏中输入服务器地址 # 如 http://127.0.0.1/uploads # 或者输入 http://localhost/uploads # 或者输入 http://本机 IP 地址/uploads 进行测试, # 输入用户名:admin,密码:adminpasswd 进行连接, # 能够打开 uploads 文件夹表示配置成功。
-
WebDav 服务器配置脚本文件 put 内容
# 切换目录 $ cd /usr # 设置用户 admin 的密码 $ htpasswd -c /usr/user.passwd admin # 设置密码文件的访问群组 $ chgrp www /usr/user.passwd # 建立 var 文件夹,保存 DavLockDB 相关文件 $ mkdir -p /usr/var # 修改 var 文件夹用户群组 $ chown -R www:www /usr/var # 建立上传文件夹:uploads $ mkdir -p /usr/uploads # 修改 uploads 文件夹用户群组 $ chown -R www:www /usr/uploads # 确认 $ ls -lG # 重新启动 Apache $ apachectl -k res
4、常见问题
-
1)mac root 用户 在 usr 目录下没有写权限
对于 macOS 10.11+ 用户,由于系统启用了 SIP(System Integrity Protection),
导致 root 用户也没有权限修改 /usr 目录。解决方法见 macOS SIP 权限设置。
-
2)Windows 电脑连接 Mac 电脑创建的 WebDav
修改注册表
- 在 “系统菜单” => “运行” 中输入 regedit,打开“注册表”。
在以下路径中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 把 BasicAuthLevel 值改成 2,即同时支持 http 和 https,默认只支持 https。
重启 webclient 服务
-
在“命令提示符”中输入以下命令,重启 webclient 服务,注意需要以管理员身份运行。
# 停止 webclient 服务 $ net stop webclient # 启动 webclient 服务 $ net start webclient # 设置 webclient 服务自动启动 sc condig webclient start= auto
在 cmd 下可有两种方法打开,net 和 sc net 用于打开没有被禁用的服务,语法是: net start 服务名 net stop 服务名 sc 可打开被禁用的服务,语法是: sc config 服务名 start= demand // 手动 sc condig 服务名 start= auto // 自动 sc config 服务名 start= disabled // 禁用 sc start 服务名 sc stop 服务名
或者在“控制面板”中依次打开 “管理工具” => “服务” => “WebClient”,重启 webclient 服务,同时将 WebClient 的“启动类型”改为“自动”。
映射网络驱动器
- 右键单击“我的电脑”,选择“映射网络驱动器”。
- 在“文件夹”输入框中输入“http:// WebDav 服务器的 IP 地址/uploads”。
- 在弹出的“Windows 安全”界面中输入上面设置的用户名 admin 和密码 adminpasswd。
连接成功后在“我的电脑”的“网络位置”分组中即可看到多出来一个磁盘。