前言
halo是一个国产新兴的一个开源博客系统,用java编写。相比wordpress这个老牌系统,halo有着更好的功能集成程度以及性能(点名批评wp后台一个页面加载超过十几秒),这篇文章会对halo的直接jar运行方式进行讲解,同时也会根据我运行时遇到的一些问题分享一些经验。
部署过程
先来看halo官方给的前置条件:
- 一个数据库服务器(mysql,mariaDB,PostgreSQL皆可)
- JAVA运行环境(最低JRE17)
看起来很简单?但是截止2025.04.27,该教程提供的是基于linux下的安装。所以在winodws下,一些步骤就会很不一样。
一,安装openJDK
openJDK是一个开源的JAVA开发人员工具包,其中也包括了我们的JRE运行环境。它有着多个不同的构建方,挑一个自己喜欢的即可,如Microsoft OpenJDK
二,下载halo博客的jar包
halo官方维护着两个下载地址如下
Halo官方Github项目地址
Halo官方下载站点
三,填写配置文件
你需要在账户文件夹(如 C://USER/admin/
)下创建一个名为.halo2
的目录,在这个目录下创建一个名为application.yaml
的文件,这就是你的halo的工作目录与配置文件。
以下是以Mysql作为数据库的配置文件示例,请根据你的实际修改数据库URL中的{HOST}
{PORT}
{DATABASE}
(即数据库名称)
server:
# 运行端口,这里是http端口,ssl需另外反代
port: 8090
spring:
# 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
r2dbc:
url: r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}
username: admin # 数据库账号
password: 123456 # 数据库密码
sql:
init:
mode: always
# 需要配合 r2dbc 的配置进行改动
# 根据你所使用的数据库进行改动
platform: mysql
halo:
# 工作目录位置
work-dir: ${user.home}/.halo2
# 外部访问地址,建议在整个博客部署完毕后再修改
external-url: http://localhost:8090
# 附件映射配置,通常用于迁移场景
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x
开始运行!
一些提示
- 在运行前,一定要在自己的数据库服务器中提前建立与
{DATABASE}
名字相同的数据库 - 可以把halo的jar包提前命名为
halo.jar
方便以后的升级
运行命令
打开cmd或powershell窗口,cd 到 halo.jar
的所在目录,运行以下指令
java -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/
耐心等待一会后,访问你所设置的外部访问地址,进行初始化即可。具体可参考:halo官方文档
尾声
希望这篇文章能够帮助你完成在windows下对halo的非docker部署,如果对这篇文章有问题,还请发表评论指正。