英国男女做那个视频网站,网站建设分几模块,村级网站建设助力脱贫攻坚,网站代运营合同模板文章目录 配置 Apache httpd修改 ServerName启动验证 httpd 服务启用 Dav 扩展服务配置 配置 httpd 扩展 Dav 服务设置共享目录文件夹配置 DavLockDB 目录创建 WebDAV 访客用户 httpd-dav.conf 主要改动部分BasicDigest共享多个目录 授予 httpd 完全磁盘访问权限验证更新配置重… 文章目录 配置 Apache httpd修改 ServerName启动验证 httpd 服务启用 Dav 扩展服务配置 配置 httpd 扩展 Dav 服务设置共享目录文件夹配置 DavLockDB 目录创建 WebDAV 访客用户 httpd-dav.conf 主要改动部分BasicDigest共享多个目录 授予 httpd 完全磁盘访问权限验证更新配置重启Apache Httpd局域网连接验证WebDAV服务 在局域网中要想共享或访问 macOS 机器上的文件可以通过文件共享、屏幕共享或 远程登录 这几种方式
FSSMB: Set up file sharing on MacControl access to your Public folder on Mac。SSHSFTP: Allow a remote computer to access your MacScreen SharingVNC: Turn Mac screen sharing on or offShare the screen of another Mac。RD: Enable remote management for Remote Desktop
以上几种方式基本都涉及到复杂的分级账户和ACL权限控制问题。
在多终端设备时代很多人都购买了在线网络云盘服务或者自己动手DIY搭建部署家庭局域网NAS私有云服务器作为家里的数据和影音中心方便文件共享和存储备份同步。另一个日益增长的需求就是分布式协作Google文档、腾讯文档等产品就是解决这类问题的在线协同编辑的办公软件。
早在1996年加州大学尔湾分校博士毕业生Jim Whitehead就与W3C共同主办了两场会议讨论了万维网上的分布式创作问题并成立了WebDAV工作小组。
WebDAV 是 Web-based Distributed Authoring and Versioning 的缩写即基于Web的分布式编写和版本控制。它是对 HTTP 的扩展为用户在服务器上创建、更改和移动文档提供了一个框架方便用户间协同编辑和管理存储在万维网服务器上的文档。
因为基于HTTPWebDAV 在广域网上共享文件有天然的优势移动端文件管理APP大多都支持WebDAV协议使用HTTPS还能保安全性。微软的Office和自家Sharepoint服务器通信苹果的iWork套件也是基于WebDAV。Apache和Nginx都扩展支持WebDAV可作为WebDAV文件共享服务器软件。
本文记录了在 macOS 上基于内置的 Apache Httpd 搭建 WebDAV 服务的步骤流程以供备忘和参考。
配置 Apache httpd
Apache Httpd 配置文件/etc/apache2/httpd.conf。
$ cd /etc/apache2/
// 备份文件以防不测
$ sudo cp httpd.conf httpd.conf.bak
$ sudo vim httpd.conf默认的文档服务目录
DocumentRoot /Library/WebServer/Documents
Directory /Library/WebServer/Documents修改 ServerName
通过以下命令获取主机名
hostnamescutil --get ComputerNamescutil --get LocalHostName
搜索 ServerName 注释行设置与主机名称一致
ServerName mbpa1398:80启动验证 httpd 服务
由于尚未配置 webdav 扩展服务暂时先不管 webDAV 服务先把 httpd server 跑起来。
请检查 wfsctl status 是否为禁用状态
$ sudo wfsctl status
disabled如果否请先执行 sudo wfsctl stop 停止否则可能会有端口冲突等问题导致后续无法访问。 执行 sudo apachectl -k start 启动 Apache Httpd 服务然后在本地命令行输入 curl localhost正常应返回 DocumentRoot 下的 index.html.en 页面
htmlbodyh1It works!/h1/body/html或在浏览器输入 http://localhost 或 http://mbpa1398.local 看看是否正常输出 It works! 。
Stopping and Restarting Apache HTTP Server - Apache HTTP Server Version 2.4
# 停止内置 Apache 方法
sudo apachectl -k stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2/dev/null启用 Dav 扩展服务配置
移除以下配置文件中 5 行行首的注释 92 #LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
165 #LoadModule dav_module libexec/apache2/mod_dav.so
176 #LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
177 #LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so533 #Include /private/etc/apache2/extra/httpd-dav.confLoadModule 加载 mod_dav 相关的三个动态库和用于 digest auth 验证的动态库。Include 包含引入dav 扩展服务配置extra/httpd-dav.conf。 如果使用默认的认证方式 AuthType Digest则需加载 mod_auth_digest.so。 如果改为 Basic默认已经加载了 mod_auth_basic.so无需加载 mod_auth_digest.so。 配置 httpd 扩展 Dav 服务
Httpd 的 Dav 扩展服务配置文件/etc/apache2/extra/httpd-dav.conf。
$ cd extra
# 备份配置文件
$ sudo cp httpd-dav.conf httpd-dav.conf.bak
# 编辑配置文件
$ sudo vim httpd-dav.conf设置共享目录文件夹
第19行指定共享服务目录/Users/faner/Public/DAVNAS。
第17行设置 alias 名字为 /webdav这个为后续访问 URL 的根路径。 17 Alias /webdav /Users/faner/Public/DAVNAS1819 Directory /Users/faner/Public/DAVNAShttpd.conf 中指定了运行 httpd daemon 进程的用户和组
User _www
Group _wwwmacOS 下 mkdir/touch 新创建的文件夹默认对 staff 工作组和 everyone 都开放了 Read Only 权限。
客户端通过 HTTP Basic/Digest 认证访问 web 服务运行 httpd 服务的 _www._www 用户作为 everyone拥有对 Directory 目录的只读浏览权限。
想要写共享的 Directory 目录需要将该目录更改为 _www._www 用户组名下。调用 chown 命令即可
chown -R _www:_www /Users/faner/Public/DAVNAS配置 DavLockDB 目录
创建 /opt/webdav/var 目录
$ sudo mkdir -p /opt/webdav/var
# -R?
$ sudo chown _www:_www /opt/webdav/var修改 httpd-dav.conf 第 15 行的 DavLockDB 路径配置
# 15 DavLockDB /usr/var/DavLock
15 DavLockDB /opt/webdav/var/DavLock创建 WebDAV 访客用户
新建存储密码的文件 user.passwd并修改所属的用户和组。
$ sudo touch /opt/webdav/user.passwd
$ sudo chown _www:_www /opt/webdav/user.passwd紧接着为 webdav 域新增用户 username。
如果 AuthType 是 Digest执行 htdigest 命令
$ sudo htdigest -c /opt/webdav/user.passwd webdav $username如果 AuthType 改为了 Basic则执行 htpasswd 命令
$ sudo htpasswd -c /opt/webdav/user.passwd $username其中 -c 选项将 truncate 已存在的密码文件。
根据提示为新增的用户username设置密码并确认。
httpd-dav.conf 主要改动部分
Basic
改DavLockDB改AuthName改AuthUserFile注AuthDigestProvider
15 DavLockDB /opt/webdav/var/DavLock
16
17 Alias /webdav /Users/faner/Public/DAVNAS
18
19 Directory /Users/faner/Public/DAVNAS
20 Dav On
21
22 AuthType Basic
23 AuthName webdav
24 # You can use the htdigest program to create the password database:
25 # htdigest -c /usr/user.passwd $AuthName $username
26 AuthUserFile /opt/webdav/user.passwd
27 # AuthDigestProvider file
29
30 # Allow universal read-access, but writes are restricted
31 # to the admin user.
32 RequireAny
33 Require method GET POST OPTIONS
34 Require user $username
35 /RequireAny
36 /DirectoryDigest
改DavLockDB改AuthName改AuthUserFile增Require valid-user注RequireAny…/RequireAny
15 DavLockDB /opt/webdav/var/DavLock
16
17 Alias /webdav /Users/faner/Public/DAVNAS
18
19 \Directory /Users/faner/Public/DAVNAS
20 Dav On
21
22 AuthType Digest
23 AuthName webdav
24 # You can use the htdigest program to create the password database:
25 # htdigest -c /usr/user.passwd DAV-upload admin
26 AuthUserFile /opt/webdav/user.passwd
27 Require valid-user
28 AuthDigestProvider file
29
30 # Allow universal read-access, but writes are restricted
31 # to the admin user.
32 # \RequireAny
33 # Require method GET POST OPTIONS
34 # Require user admin
35 # \/RequireAny
36 \/Directory共享多个目录
建议把要共享的内容放在一个共享目录DAVNAS然后通过 /webdav 访问。
如果有多个共享目录可以复制 Alias、Directory建立多组 URL 路径映射。
Alias /webdav1 /Users/faner/Public/DAVNAS1Directory /Users/faner/Public/DAVNAS1Dav On# Dav access control
/DirectoryAlias /webdav2 /Users/faner/Public/DAVNAS2Directory /Users/faner/Public/DAVNAS2Dav On# Dav access control
/Directory这样后续就可以通过 http://192.168.0.100/webdav1, http://192.168.0.100/webdav2 分别访问不同的共享目录。
授予 httpd 完全磁盘访问权限
将 DAVNAS 共享目录分配给 _www:_www 后还得给 httpd 相关 daemon 进程分配磁盘访问权限这样才能读写磁盘文件系统。
打开 macOS 设置(System Settings)隐私与安全性(Privacy Security)完全磁盘访问权限(Full Disk Access)
点按左下角的 号在打开的访达窗口按 ShiftCommandG 调出路径访问方式输入 /usr/sbin/httpd 回车找到 httpd 命令添加。
依此方法添加 /usr/sbin/htdigest或 /usr/sbin/htpasswd。
验证更新配置重启Apache Httpd
执行 apachectl configtest 检查 Apache Httpd 配置文件如果仅输出一行 Syntax OK 代表配置正确否则表示配置有问题请按提示检查配置文件也可查看分析问题日志 /var/log/apache2/error_log。
配置文件验证无误后执行 sudo apachectl graceful 重载配置文件使生效。
最后重新启动 Apache 服务器sudo apachectl -k restart。
局域网连接验证WebDAV服务
打开本机访达Finder按 Commandk 连接服务器输入 http://192.168.0.100/webdav 或 http://mbpa1398.local/webdav/ 输入在 user.passwd 中配置的账户密码看看是否可以正常访问。
本机验证通过后在局域网其他终端例如 Mac FinderiPhone PDF expert上尝试连接 webdav 服务。连接成功后即可进行简单的多用户协作。
这样就可以将 DAVNAS 作为家庭局域网内的简陋 NAS支持多设备共享和编辑同步文件。 需要注意的是DAVNAS 目录隶属 _www:_www 用户组所有用户请统一通过 WebDAV 客户形式以 _www 身份对其进行访存。