需要着重要说明的一点是,与TzCHZ 逃离WordPress.com的经历与教训:自主建站的重要性 不同,从基于LeanCloud和Vercel的waline转移数据并不会有任何费用😝;话虽如此,但还是自建waline更好一些
前情提要
LeanCloud宣布不为中国大陆用户提供服务之后,我其实一直在想转移评论系统,只不过限于当时的情况(高三),我不得不将计划向后推迟,进入大学之后,又沉溺于学习(玩乐)无法自拔;当然,大家不要学我,我是个反面教材
Railway
直接按照官方文档上写的部署就好;其实Vercel还能用,但是在中国大陆无法访问了,所以会选择Railway;去原来的waline后台导出json文件后再导入新的waline即可,唯一让我不太满意的就是在Railway上搭建的waline无法使用自己的MySQL,反观Vercel却可以使用,所以如果你不嫌麻烦,可以把Vercel里的变量全部改成MySQL,作为备用
导入报错
我从原先基于LeanCloud和vercel的waline中导出了json文件,在基于Railway上的waline重新导入时发现总是会卡在54/240,并报错,百思不得其解,waline社区成员也没人能理解我的这个错误
后来我通过查看Railway中PostgreSQL的Logs发现有一个评论在导入时出现了问题,将该条评论删除后,再次导入正常;显示的错误是“整数超出范围”
该评论如下(ip已处理):
{ "nick": "Anonymous", "ip": "", "mail": "", "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", "insertedAt": "2021-03-17T18:32:00.297Z", "isSpam": false, "pid": "600235745582f5630f01333a", "link": "", "comment": "<p><a class=\"at\" href=\"#600235745582f5630f01333a\">@高浩轩 </a> , <img alt=\"titter\" referrerPolicy=\"no-referrer\" class=\"vemoji\" src=\"//img.t.sinajs.cn/t4/appstyle/expression/ext/normal/71/2018new_touxiao_org.png\" />何止是图床</p>\n", "url": "/2020/07/08/22/", "QQAvatar": "", "rid": "600235745582f5630f01333a", "isNotified": true, "objectId": "60524b23e061ae461cfcd123", "createdAt": "2021-03-17T18:32:03.649Z", "updatedAt": "2021-03-17T18:32:06.255Z" },
Vercel
目前Vercel还不能在中国大陆地区访问,所以仅作备用;在操作之前别忘记把评论导出!!
先把之前LeanCloud的环境变量删掉
然后添加MySQL的环境变量
环境变量名称 | 必填 | 默认值 | 备注 |
---|---|---|---|
MYSQL_HOST | 127.0.0.1 | MySQL 服务的地址 | |
MYSQL_PORT | 3306 | MySQL 服务的端口 | |
MYSQL_DB | ✅ | MySQL 数据库库名 | |
MYSQL_USER | ✅ | MySQL 数据库的用户名 | |
MYSQL_PASSWORD | ✅ | MySQL 数据库的密码 | |
MYSQL_PREFIX | wl_ | MySQL 数据表的表前缀 | |
MYSQL_CHARSET | utf8mb4 | MySQL 数据表的字符集 | |
MYSQL_SSL | false | 是否使用 SSL MYSQL 连接数据库 |
服务器上MySQL的设置
导入waline.sql
之前,要先确认你的MySQL版本不低于5.6
,因为 mysql 5.5 不支持两个 timestamp 字段同时为 CURRENT_TIMESTAMP ,在导入waline.sql
文件时会报错;
新建用户之后要去授予用户数据库的访问权;如:我的waline数据库名为blog-waline
,新建新建的账户名为user
,那么在新建user
之后要去授予它blog-waline
数据库的访问权限,不然会报错
在账户
里,user
有两个,如果是独立部署,那么仅修改localhost
的权限显然会更加安全,但很可惜,我尝试在本地搭建了几次waline都没成功,只好把数据库放在Vercel上备用
只需要给user
需要访问的数据库权限即可
独立部署waline
关于独立部署,官方文档中写的很少,比较适合有一定前端经验的人运行,像我这种刚学会C、Python的大学生就很难部署成功,上文MySQL的设置就是在我折腾独立部署时的产物,这篇文章本来是想记录一下独立部署waline的,结果因为我没成功,所以文章标题变成了《从Vercel逃到Railway》,不过我也会记录自己失败的尝试
来自CHZ的小广告:如果你想自己尝试,但苦于没有服务器,欢迎来到TzCHZ的小店选购NAT或者未激活的Azure $100(可续订)
systemd
可以说是我比较喜欢的方案,但是无论如何配置,最终都是以systemd启动失败告终
参考文章:
直接运行
最后启动main.js
的时候总是显示错误,可能是有些文件没有配置成功?
参考文章:
Docker部署
我没有尝试Docker部署,所以我贴出的文章也仅供参考: