起因
最近打算去图书馆待上一阵 Youtube Music有不少Ambience类的音乐 但是架不住收费(还是想自己DIY下) 既然我能够下载油管的音乐 那我现在只需要找个地方存就好了
包安装
sudo apt-get update
sudo apt-get install apache2 cadaver
只需要安装两个包 apache2
本身用作搭建HTTP服务 不过它本身有很多模块可以加载 这其中也包含了WebDAV cadaver
是一个Unix环境下连接WebDAV的命令行工具 搭建完了需要用它本地测试下
端口冲突检查
apache2的默认端口为80 和我nginx中的80端口冲突 直接修改安装目录下的ports.conf
文件 默认路径/etc/apache2/ports.conf
root@ubuntu-s-1vcpu-1gb-tor1-01:/etc/apache2# cat ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
模块安装
sudo a2enmod dav
sudo a2enmod dav_fs
sudo systemctl restart apache2
dav模块为对WebDAV的基础支持 dav_fs模块是对dav模块的扩展
创建文件
配置文件
sudo touch /etc/apache2/sites-available/webdav.conf
sudo vim /etc/apache2/sites-available/webdav.conf
DavLockDB "/var/DavLock.db"
Alias /webdav /var/www/dav
<Directory /var/www/dav>
Require valid-user
DAV On
AuthType Basic
AuthUserFile /etc/apache2/dav.password
</Directory>
配置 | 值 | 说明 |
---|---|---|
DavLockDB | 路径 | WebDAV的锁数据库文件 |
Alias | 路径 | 当前文件位置别名 |
Directory | 配置项xml | 指定当前映射路径 |
Require | 详见配置 | 这里配置使用已授权的所有用户 |
AuthType | 详见配置 | 这里使用基本的账户认证 |
AuthUserFile | 路径 | 账户认证密钥信息存储文件 |
软链
sudo ln -s /etc/apache2/sites-available/webdav.conf /etc/apache2/sites-enabled/webdav.conf
这里加软链接的目的是为了启用配置 更快捷的方式是使用a2ensite
sudo a2ensite webdav
去掉加载的配置使用a2dissite
sudo a2dissite webdav
dav路径
sudo mkdir /var/www/webdav
sudo chown -R www-data:www-data /var/www/webdav
DavLock.db 锁文件
sudo touch /var/DavLock.db
sudo chown www-data:www-data /var/DavLock.db
PS: 可以看到这里的数据库用的是Berkeley
root@ubuntu-s-1vcpu-1gb-tor1-01:/var# file /var/DavLock.db
/var/DavLock.db: Berkeley DB (Hash, version 9, native byte-order)
账号认证密码
sudo htpasswd -c /etc/apache2/dav.passwd davUserName
接下需要输入两次密码确认
chmod 640 /etc/apache2/dav.passwd
开启服务
配置语法测试
sudo apachectl configtest
如果出现Syntax OK
可直接开启服务
sudo systemctl enable apache2
sudo systemctl restart apache2
测试webdav
sudo cadaver http://your_domain:port/davAlias
输入刚才配置的用户信息来测试认证
评论区