本博客原来跑的是JDK 17,数据库是Postgresql-10,都比较老了,Halo的最新版本要求Java是21,而数据库因为Django 6.0的最低要求是14,所以也想着升级一下。由于VPS的操作系统是CentOS 7.8,已经很老了,还好能支持到Postgresql 15,所以也一并升级一下。
升级JDK
步骤如下:
到 这里 下载openjdk,然后解压到
/root/openjdk/jdk-21。配置环境变量,这个简单:
export JAVA_HOME=/root/openjdk/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar测试一下java的版本即可
修改
/etc/systemd/system/halo.service里的java程序位置为新的java21的位置重新启动halo服务
systemctl daemon-reload
systemctl restart halo.service升级postgresql
在Halo中备份数据
下载postgresql并安装,安装可以参照官网的安装方法
停止原来的10版服务,初始化15版,设置postgres的密码和远程连接(与
application.yaml中的内容一致),然后启动15版的服务远程连接15版服务后创建
blog数据库(与application.yaml中的内容一致)这一点很关键,删除或者修改原来的
/root/.halo2(也就是application.yaml中的运行目录),然后创建一个新的.halo2目录,将application.yaml复制进去重新启动
halo.service服务,然后访问/console路径进入默认配置,随便设置初始用户名和密码,进去之后立刻恢复备份恢复完注意,
application.yaml也会恢复到备份时数据,所以application.yaml恢复前后少改动,否则需要手工再调整其中的设置。管理员用户名和密码也会恢复到备份时的状态,所以新设置的管理员用户和密码是没用的。
全部设置完之后在概览里就能看到最新的版本信息了:
Java
OpenJDK Runtime Environment / 21+35-2513
数据库
PostgreSQL / 15.15就能畅享最新版本,各种插件也都跟上时代了。