准备
文档来源:
我的演示操作系统:
Debian11
好吧,为了避免知识的诅咒,我尽可能的写所有命令下来,尽可能的详细 ,新手还是更建议宝塔或者比别的面板
1.准备java
默认的 java 效率似乎性能似乎不太行,这边推荐 zulu 或者龙井 java
注意:
2.21 以上版本:JRE 21 (我使用了这个)
2.20 及以下版本:JRE 17
龙井
zulu
2.数据库
H2 Database,PostgreSQL,MariaDB,MySQL(我使用了这个)
安装
我在/opt/halo路径下导入了halo.jar
终端中输入
cd /opt/halo
wget 文件链接
halo.jar 在这里下载
编写sh脚本启动halo
命令:vi start.sh
输入:
"java路径" -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:/opt/halo
java 路径要精确到文件,像.../bin/java
--spring.config.additional-location=optional:file: 后方是项目的地址
:wq 保存并退出文件编辑
创建配置文件
命令:vi application.yaml
输入:(这个是我的模板,你可以照着进行更改)
server:
port: 19491 #外部访问的端口
spring:
r2dbc:
url: r2dbc:pool:mysql://127.0.0.1:3306/blog
username: blog
password: blog123321
r2dbc-migrate:
dialect: mysql
sql:
init:
mode: always
platform: mysql # 与数据库保持一致(可选,不影响 R2DBC)
halo:
work-dir: /www/wwwroot/blog #项目的地址
external-url: https://blog.yunb.fun #项目的外部访问域名
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x关于数据库,如果你懒你可以想我这样创建一个 用户名称:blog 密码:blog123321 表名:blog 的数据库
spring:
r2dbc:
url: r2dbc:pool:mysql://127.0.0.1:3306/blog
username: blog
password: blog123321
r2dbc-migrate:数据库配置说明:
配置对应关系:
数据库
很好,你已经完成了一大半,接下来你需要创建你 blog 的数据库
当然你可以使用其他数据库,我这里拿 mysql 在宝塔面板的创建作为例子

上线
我这里是利用 Nginx 进行部署的
在宝塔上创建一个网站
部署好 ssl 证书
如图进行反向代理

这样你就可以输入你的域名进行访问了!
补充
你可以创建Systemd 服务器让网站自启动
创建 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 StandardOutput=syslog StandardError=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
参与讨论
(Participate in the discussion)
参与讨论