转载注明来源: 本文连接 来自osnosn的博客,写于 2019-10-10.php
手机上有不少云笔记app,大多支持云存储。但是把笔记放在别人的服务器上,总以为不太安全。因此想把云笔记存在本身家。html
有不少开源的云笔记,好比蚂蚁笔记(Leanote),nextcloud-note,
但是创建起来都比较麻烦,固然功能也是很强的。
leanote是golang写的,要mango数据库支持。nextcloud-note须要安装nextcloud云盘系统,须要php+mysql支持。mysql
网上搜了一下,nginx
因此尝试本身建个webdav服务器。golang
nextcloud 支持webdav协议。
买了台迷你pc(x86架构),装CentOS7,安装nginx,php-fpm,mariadb,而后装nextcloud,而后在nextcloud中装notepad插件。
手机端app:web
用了一段时间,发现云盘我基本上没什么需求,为了用个云笔记,建了这么个大东西,感受挺浪费。sql
也挺复杂的,还要装mango数据库。放弃。数据库
apache2,nginx,lighttpd 都支持webdav。
apache2 比较臃肿,放弃。
因此只尝试 nginx 和 lighttpd 。
若是从源码安装,不管什么系统,不管 nginx 或 lighttpd 都能装好webdav服务。
如下是尝试使用系统的预编译包安装和配置。apache
Sorry, no sqlite3 and libxml2 support include
,发现编译时缺乏 --with-webdav-props
参数。致使PROPFIND指令没有按要求返回XML内容,而是返回了0字节。手上还有台斐讯N1盒子,刷了armbian。debian10(buster)版。centos
yum install nginx 或者 apt install nginx 。
在vhost的 server { ... } 中,加上如下一段。则在 http(s)://youdomain.doman/dav/ 中打开wendav。
location ^~ /dav/ { dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; # 上传文件的最大容量限制,0为不限制 client_max_body_size 20M; create_full_put_path on; dav_access user:rw group:rw all:r; auth_basic "Authorized Users Only"; auth_basic_user_file $document_root/dav/.htaccess.pw.basic ; satisfy any; }
由于页面认证用的是basic,因此不建议用http,不安全。建议用https (ssl)。 ssl 的配置自行上网搜索。
centos : yum install lighttpd (配置后有问题,放弃)
armbian : apt install lighttpd lighttpd-mod-webdav
lighttpd-enable-mod auth webdav
修改 /etc/lighttpd/lighttpd.conf
server.document-root = "/var/www/lighttpd" # 设置web的根目录 server.port = 88 # http 的端口,缺省为 80 # lighttpd 的运行身份,通常不修改,就用缺省设置 server.username = "www-data" server.groupname = "www-data" #添加如下段落 $HTTP["url"] =~ "^/note($|/)" { webdav.activate = "enable" webdav.is-readonly = "disable" auth.backend = "plain" auth.backend.plain.userfile = "/etc/lighttpd/webdavuser" auth.require = ( "" => ( "method" => "basic", "realm" => "Access DAV", "require" => "valid-user" ), ) }
建立目录 mkdir -p /var/www/lighttpd/note
修改目录的owner chown www-data.www.data note
,(www-data为lighttpd的运行身份)
建立帐号文件 touch /etc/lighttpd/webdavuser
设置帐号文件的权限 chown root.www-data webdavuser; chmod 640 webdavuser
webdavuser文件为纯文本文件,一行一个帐号。用户名和密码之间用冒号隔开。
test:123456 user:password
systemctl restart lighttpd
设置完成,http://xxx.xxx.xxx:88/note/ 目录就开启了webdav。
由于页面认证用的是basic,因此不建议用http,不安全。建议用https (ssl)。
location ^~ /note/ { allow all; proxy_set_header X-Real-IP $remote_addr; proxy_http_version 1.1; proxy_pass http://127.0.0.1:88/note/; }
注意,loction后的路径(note)要和proxy_pass中的路径相同。
最后,把ssl的web,443口在路由器上作个映射(需公网ipv4)。
或者在路由器上容许转发(ipv6)。路由器支持ipv6就行。宽带运营商都已经提供ipv6了。国内三大手机运营商的4G网都有ipv6支持。
再配置个动态域名。
就能够设置"易码"app,添加webdav服务器。开心的写你的云笔记。