Hexo Blog优化[04] - 搭建Waline评论系统
目标
通过初步比对,决定先利用当前VPS + Docker + Sqlite搭建Waline评论系统。选择Waline是因为很多人用,并且评论无需注册,暂无安全漏洞。
由于Docker和Sqlite对我来说都是新鲜事物,所以看官方文档相对比较抽象点,就写一写步骤了。所以站在docker小白视角,总结一下。
安装步骤
在VPS上安装Docker和Sqlite
这个按VPS操作系统的环境安装即可。记得启动Docker的Daemon。
随便找一个目录
按官方要求,执行下面3个动作:
1 | git clone https://github.com/lizheming/waline.git |
第1,2两条指令就不用多说了,对docker不了解的人看第3条指令就读天书一样(好在是执行不出状况),如果手敲的话不要漏了后面的’.'。
实际上第3条指令就是创建镜像了。-t选项是标签名,后面docker启动就靠它了。-f 指定dockerfile, dockerfile的内容就是构建镜像的指令和说明。
随便建一个目录
建一个目录为了干净一点,没其他目的,也就是说不是必要的。但要编辑一个docker-compose.yml文件:
1 | mkdir tmp |
文件内容如下:
1 | # docker-compose.yml |
把sqlite文件放到刚刚配置的目录
按官网要求,把刚刚clone目录里面的../asset/waline.sqlite拷贝到自己配置的目录:完整路径是/home/nginx/data/waline.sqlite.
启动docker
为了减少不必要的问题,直接用root启动吧:sudo docker compose up. 这时候,评论系统没什么问题的话就可以工作了,输入 http://localhost:8360 可以看到效果。
NGINX反向代理
这个就没啥坑了, 先把网站暂停下,直接拷配置就可以看到效果:
1 | # proxy to 8360 |
遗漏问题
如何将评论与文章关联起来?
遇到的问题
SQLITE
问题提示: SQLITE_ERROR: no such table: wl_Comment
错误配置如下:
1 | # docker-compose.yml |
这里面有两个坑,主要是对Docker不熟悉引起:
- 坑1
我的配置是在SQLITE_DB后的名字用了’waline.sqlite’, 多加了sqlite后缀,去掉就好.
- 坑2
volumes和SQLITE_PATH含义没理解清楚,配置错误。volumes的值的意思是将本地目录和容器目录映射。
SQLITE_PATH是容器内部路径。
把坑1和坑2填平后,配置如上一节描述。
参考链接
在搭建过程中参考了 https://waline.js.org/en/guide/deploy/vps.html https://dzyx.uk/2023/01/22/39/ https://vickey.fun/2022/08/09/Waline-Migration-From-CloudBase-to-Docker/ https://www.zdynb.cn/2022/shi-yong-docker-bu-shu-waline.html