基础安装部署
在开始之前,需要确保服务器已经满足以下条件:
Java 环境,版本要求:
2.21 以上版本:JRE 21
2.20 及以下版本:JRE 17
数据库(任一)
由于 Linux 发行版本的差异以及包管理器的不同,此文档不会涉及到如何安装 Java 环境以及数据库建议查阅对应依赖的官方文档进行安装。
创建存放运行包的目录,这里以
~/app为例mkdir ~/app && cd ~/app下载运行包
wget https://dl.halo.run/release/halo-2.21.0.jar -O halo.jar信息
以下是官方维护的下载地址:
创建 工作目录
mkdir ~/.halo2 && cd ~/.halo2创建 Halo 配置文件
vim application.yaml将以下内容复制到
application.yaml中,根据下面的配置说明进行配置。application.yaml
server: # 运行端口 port: 8090 spring: # 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置 r2dbc: url: r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE username: admin password: 123456 sql: init: mode: always # 需要配合 r2dbc 的配置进行改动 platform: h2 halo: # 工作目录位置 work-dir: ${user.home}/.halo2 # 外部访问地址 external-url: http://localhost:8090 # 附件映射配置,通常用于迁移场景 attachment: resource-mappings: - pathPattern: /upload/** locations: - migrate-from-1.x
数据库配置说明:
配置对应关系:
信息
HOST:数据库服务地址,如
localhostPORT:数据库服务端口,如
3306DATABASE:数据库名称,如
halo,需要提前创建,以 MySQL 为例:create database halo character set utf8mb4 collate utf8mb4_bin;
配置完成之后,保存即可。
测试运行 Halo
cd ~/app && java -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/如果没有观察到异常日志,即可尝试访问 Halo
打开
http://ip:端口号即可跳转到初始化页面。
作为服务运行
下面将介绍如何将 Halo 作为服务运行,当然你也可以写一件启动脚本,(参考之前的文章)
以实现在关闭 ssh 连接后,Halo 仍然可以正常运行。
此文档以 Systemd 为例,也可以参考:Installing Spring Boot Applications
退出 halo 账户,登录到 root 账户
如果当前就是 root 账户,请略过此步骤。
exit创建 halo.service 文件
vim /etc/systemd/system/halo.service将以下内容复制到
halo.service中,根据下面的配置说明进行配置。/etc/systemd/system/halo.service
[Unit] Description=Halo Service Documentation=https://docs.halo.run After=network-online.target Wants=network-online.target [Service] Type=simple User=USER ExecStart=/usr/bin/java -Dfile.encoding=UTF-8 -server -Xms256m -Xmx256m -jar JAR_PATH --spring.config.additional-location=optional:file:/home/halo/.halo2/ ExecStop=/bin/kill -s QUIT $MAINPID Restart=always StandOutput=syslog StandError=inherit [Install] WantedBy=multi-user.targetJAR_PATH:Halo 运行包的绝对路径,例如
/home/halo/app/halo.jar,注意:此路径不支持~符号。USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除
User=USER。
提示
请确保
/usr/bin/java是正确无误的。建议将ExecStart中的命令复制出来运行一下,保证命令有效。配置完成之后,保存即可。
重新加载 systemd
systemctl daemon-reload运行服务
systemctl start halo在系统启动时启动服务
systemctl enable halo
最后,你可以通过下面的命令查看服务日志:
journalctl -n 20 -u halo
版本升级
备份数据,可以参考 备份与恢复 进行完整备份(可选,但推荐备份)。
停止 Halo 服务
service halo stop下载新版本的 Halo 运行包,覆盖原有的运行包
wget https://dl.halo.run/release/halo-2.21.0.jar -O /home/halo/app/halo.jar信息
以下是官方维护的下载地址:
启动 Halo 服务
service halo start