【重要提示】请务必注意数据备份(数据文件及数据库 ),以免数据丢失。
【重要提示】请务必注意数据备份(数据文件及数据库),以免数据丢失。
【重要提示】请务必注意数据备份(数据文件及数据库),以免数据丢失。
本文将介绍在 Ubuntu 18.04.1 LTS 系统环境下部署为知笔记的方法。
【准备】需要一个云服务器和一个已经备案的域名,国外云服务器则无需备案。
免费版本,最多支持 5 个用户进行使用。
界面美观,文章自动保存,可以查看历史版本,支持客户端,全文搜索能力不强。
实测 Docker 版本占用内存 700 MB
建议最好安装在 4G 内存云服务器上,如果运行在 2G 内存云服务器上,内存占用约 70 %。
官网链接
使用云存储来保存笔记数据 - 官网链接
为知笔记私有部署Docker镜像 - 官网链接
私有部署教程 - 官网链接
一、安装 Docker
1、安装 Docker
腾讯云上 Docker 的安装方式
经测试 Ubuntu 18.04.1 LTS 系统自带 Docker,无需安装 Docker 。
如果需要安装请执行以下代码
代码语言:javascript复制curl -sSL https://get.daocloud.io/docker | sh
测试是否安装成功
代码语言:javascript复制docker run hello-world
如果提示 Hello from Docker! 则安装正常。
2、使用 DockerHub 加速器
使用 DockerHub 加速器
修改 /etc/docker/daemon.json 文件,并写入以下内容,如果文件不存在请新建并写入以下内容。
代码语言:javascript复制{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
重启 Docker
代码语言:javascript复制$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
执行 docker info 命令,返回结果中包含以下内容,则说明配置成功。
代码语言:javascript复制Registry Mirrors:
https://mirror.ccs.tencentyun.com
二、拉取并部署为知笔记镜像
1、创建数据文件夹并拉取镜像,启动并映射到8885端口
代码语言:javascript复制$ cd ~
$ mkdir wizdata
代码语言:javascript复制docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8885:80 -p 9269:9269/udp wiznote/wizserver
如果服务器内存4G或4G以上,可以使用下面的代码开启全文搜索功能(注意:下面这条代码不是官网内容)
实测不使用以下代码也可以进行全文搜索。
代码语言:javascript复制docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 80:80 -e SEARCH=true wiznote/wizserver
【注意】云服务器安全组要放行对应端口(8885),如果安装其他防火墙工具,也应放行对应端口。
2、为知笔记登陆
安装完成后,预设管理员账号是admin@wiz.cn,密码是123456,您可以使用这个账号登录,并修改密码。
如果有需要,可以使用反向代理。
后台管理的地址为
http://ip : 端口/admin
http://域名: 端口/admin
https://域名: 端口/admin
3、数据备份(数据文件及数据库)
一般来说为知笔记是存储在 wikidata 文件夹,那么只需要定期备份 wikidata 文件夹。
如果数据存储位置设置为【腾讯云 COS 】,那么 wikidata 目录中的 data_root 文件夹已经迁移至云端,其他文件(数据库等)依然保留在本地。那么需要备份本地的 wikidata 目录和 COS 存储桶中的全部文件。
COS 存储桶中的的 文件 备份方法请看 【玩转腾讯云】腾讯云COS双重备份-版本控制 跨地域备份 。
经实际操作,只要备份数据还在,即使数据丢失也可以完整还原。
【数据恢复方法(仅适用于数据存储位置在本地)】下载备份的 wizdata.zip 文件,将 wizdata.zip 文件解压到服务器上,重新启动镜像即可恢复数据。
【为知笔记-数据恢复方法(仅适用于数据存储位置在腾讯云COS存储桶)】下载备份的 wizdata.zip 文件和数据存储桶中的所有文件,将 wizdata.zip 文件解压并删除 data_root 目录下的所有文件,将数据存储桶中的所有文件粘贴到 data_root 目录下,重新启动镜像即可恢复数据。
三、出现问题及解决方法
1、使用 https 时遇到 新建笔记失败的问题
参考文章:如何为 WizNote 的私有部署配置 https
【解决方法】
代码语言:javascript复制如果 Nginx.conf 中存在一下代码
proxy_set_header X-Forwarded-Proto $thescheme;
则将其替换为以下代码
proxy_set_header X-Forwarded-Proto $scheme;
如果不存在,则在 Nginx.conf 中添加以下代码
proxy_set_header X-Forwarded-Proto $scheme;
2、部署成功运行后,登陆账号或注册账号会出现错误
代码语言:javascript复制query failed, sql = select ID as id, USER_GUID as userGuid, EMAIL as email, MOBILE as mobile,
displayname as displayName, USER_LANGUAGE as userLanguage, POINTS as points, EMAIL_VERIFY as
emailVerify, VIP_DATE as vipDate, DT_CREATED as dtCreated, PASSWORD as password, USER_STATE as
userState, MEDAL_COUNT as medalCount, last_login as lastLogin, MOBILE_VERIFY as mobileVerify ,
vatar_version as avatarVersion, TENANT_ID as tenantId, GMT_OFFSET as gmtOffset from wiz_user
where EMAIL = ? or MOBILE = ?, values = admin@wiz.cn,admin@wiz.cn, err = ER_BAD_FIELD_ERROR:
Unknown column 'POINTS' in 'field list'
欢迎使用为知笔记
登录
【解决方法】
(1)停止该容器
代码语言:javascript复制$ docker ps // 查看所有正在运行容器(如果没有显示相关内容则不需要停止)
$ docker stop containerId //停止某一容器,containerId 是容器的ID
例如:docker stop 819a7f7a9ad4
【注意】如果使用 docker ps 没显示该容器正在运行,请使用 docker ps -a 查找所有容器,并参照以下方法移除该容器。
(2)移除容器
代码语言:javascript复制$ docker rm containerId //remove删除某一容器
例如:docker rm 819a7f7a9ad4
(3)再次执行启动镜像及端口映射命令
代码语言:javascript复制$ docker run --name wiz -it -d -v ~/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8885:80 -p 9269:9269/udp wiznote/wizserver