轉載註明來源: 本文連接 來自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服務器。開心的寫你的雲筆記。