Apache WebDAV服务器¶
正如 Apache Vs NGINX 所述,NGINX核心模块功能有限,对于 WebDAV 的完整功能支持需要依赖第三方模块,部署和配置复杂。而Apache httpd服务,则在核心模块提供了丰富的功能,可以方便配置部署WebDAV服务。
备注
后续我准备将 通过WebDAV同步Joplin数据 从 NGINX WebDAV服务器 改为Apache WebDAV,主要考虑方便配置,同时学习Apache的配置管理。
激活 WebDAV Apache模块¶
Apache web服务器提供了很多模块,通过
a2enmod
工具可以激活或关闭,使用以下命令激活:
sudo a2enmod dav
sudo a2enmod dav_fs
重启apache:
sudo systemctl restart apache2.service
配置 WebDAV¶
创建 Joplin - 开源Markdown记事本 存储目录:
mkdir /home/huatai/docs/joplin
WebDAV 需要存储一个数据库文件来管理 WebDAV 用户存取文件的所,这个锁文件必须被Apache能够读写,但是不能被web网站访问到以免泄露安全信息。创建目录:
mkdir /home/huatai/docs/var
上述目录在Apache配置中存放 DavLock
锁文件
采用 Apache基本认证配置 方法,结合 WebDAV :
DavLockDB /home/huatai/docs/var/DavLock
<VirtualHost *:80>
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /home/huatai/docs/github.com/huataihuang/cloud-atlas/build/html
<Directory "/home/huatai/docs/github.com/huataihuang/cloud-atlas/build/html">
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
Alias /joplin /home/huatai/docs/joplin
<Directory "/home/huatai/docs/joplin">
DAV on
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
备注
你会注意到,我在 /
和 /joplin
两次配置了 Apache基本认证配置
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
我最初以为 /joplin
会集成上一级的目录配置,但是实际上并不是,需要为每个目录配置认证,否则会类似 Apache 简单配置 那样由于默认安全限制无法访问 /joplin