大家好,我是羊刀仙。
本次记录一下自己的博客更新以及域名替换过程,其它平台的博客应该也都大致通用。
更新缘由
之前部署Glance这篇,我突然发现博客RSS订阅竟然是之前的老域名blog.ydxian.love,现在的访问域名则是blog.ydxian.xyz。通过SSH查看docker-compose.yml文件发现,当时果然忘记修改。
看了看Halo官网已经更新到了2.18,在查看更新日志后,确认目前的2.14同2.18并大版本改动,应该不会出现冲突等问题。于是便决定着手进行更新。
更新流程
重新拉取安装Halo新版本
打开SSH工具,比较推荐之前的WEB SSH,很方便好用。
依次执行以下命令:
cd /root/data/docker_data/halo # 进入halo目录下
docker-compose down # 停掉容器
cp -r /root/data/docker_data/halo /root/data/docker_data/halo.archive # 备份,以防万一
vim docker-compose.yml # 修改版本号,域名
# 英文输入状态下,按i即可进行修改。修改完毕后,按下esc,再同时按下shift+:,英文状态输入wq并回车,即可保存。
docker-compose up -d # 直接升级容器时会自动停止并立刻重建新的容器
docker image prune # 删除所有未被 tag 标记和未被容器使用的镜像
换成新的域名,版本号改掉,还有箭头所指的mysql数据库密码。

修改数据库
输入以下命令:
docker ps # 查看容器ID
可以看到,mysql的容器ID前3位是81b。

接着继续输入命令
docker exec -it 81b # 进入mysql,最后容器ID换成你们自己的
mysql -uroot -p # 登陆mysql
# 会提示输入密码,空打密码,敲一下回车
use halo # 切换到名为 halo 的数据库

接着,复制并修改以下命令,粘贴并回车:
# 在 extensions 表中,将 data 字段中所有出现的旧域名 'https://blog.ydxian.love' 替换为新域名 'https://blog.ydxian.xyz',并且只对包含旧域名的数据进行更新
UPDATE `extensions`
SET `data` = REPLACE(`data`, 'https://blog.ydxian.love', 'https://blog.ydxian.xyz')
WHERE `data` LIKE '%https://blog.ydxian.love%';
# 退出并返回
exit # 连着输入两次
# 重启
docker-compose down
docker-compose up -d

新的问题出现
HTTP ERROR 500这个问题让我头疼了好多天,一直以为是数据库的问题。

在论坛发帖后,小伙伴们建议我看看是否是插件问题,没想到还真是。
是名为ToolBench的插件问题,因为很久没有维护在新版本中产生一些破坏性问题。
最后
Halo我使用接近一年,总体评价还是非常不错的。
如果各位有不能解决的问题,建议输入以下命令调取运行日志后,到官方论坛寻求帮助,大佬们回复极快!
docker ps # 查看容器ID,跑不起来就 docker ps -a
docker logs 71v # 容器ID前三位
官方传送门:https://bbs.halo.run
评论区