WebDAV with apache

WebDAV

先添加dav的subdomain, 见这篇文章.

server side

  1. 新建用户:

    1
    2
    sudo adduser davuser # 用户名自己起
    mkdir /var/www/webdav
  2. 添加读写权限

    1
    2
    3
    chown -R www-data:www-data /var/www/webdav 
    usermod -a -G www-data davuer
    chmod g+w /var/www/webdav # 否则后面进去了没法写入

开启apachewebdav mod.

1
2
3
sudo a2enmod dav
sudo a2enmod dav_fs
nano /etc/apache2/sites-available/dav.hinataa.tk.conf

1
2
3
4
5
6
7
8
DavLockDB /var/www/DavLock
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/webdav
<Directory "/var/www/webdav">
DAV ON
</Directory>
</VirtualHost>
1
2
3
ln -s /etc/apache2/sites-available/dav.hinataa.tk.conf /etc/apache2/sites-enabled/dav.hinataa.tk
a2ensite dav.hinataa.tk
service apache2 restart

增加密码认证

1
2
3
4
5
6
7
8
apt-get install apache2-utils
htdigest -c /etc/apache2/webdav.passwords webdav davuser
# 给davuser创建一个密码

chown www-data:www-data /etc/apache2/webdav.passwords
# 更改文件权限给apache让他可以读写

nano /etc/apache2/sites-available/dav.hinataa.tk.conf

<Directory>session添加下列代码

1
2
3
4
AuthType Basic 
AuthName "WebDAV Access Authentication"
AuthUserFile /etc/apache2/webdav.passwords
Require valid-user

完全版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
DavLockDB /var/www/DavLock
<VirtualHost *:80>
ServerName dav.hinataa.tk
ServerAdmin webmaster@localhost
DocumentRoot /var/www/webdav
<Directory "/var/www/webdav">
DAV ON
AuthType Digest
AuthName "WebDAV Access Authentication"
AuthUserFile /etc/apache2/webdav.passwords
Require valid-user
</Directory>
</VirtualHost>
1
2
a2enmod auth_basic
service apache2 restart

映射磁盘

现在可以在windows文件管理器里映射磁盘了, 右键点击网络, 选择"映射网络驱动器(N)..."

然后就能挂载远程webdav作为一个windows磁盘, 能在命令行切进目录去,
能直接打开修改保存文件, 对于日常维护的文本文件读写速度完全能够满足.

Thanks for the help of apache webdav tutorail.

Author: symant233
Link: https://symant233.github.io/posts/webdav/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.