Halo blog 搭建过程
1 前言
本篇文章详述了,本人搭建halo博客的全过程。从服务器购买、域名购买到网站搭建全过程。(含常见错误处理)。闲话不多说,开始搞起!
2 服务器购买
本人学生党,故买的是阿里云学生服务器ECS。
买完之后,点击运行,远程连接即可进入。

进入之后进行相关配置,服务器就算是搞好啦。
3 域名购买
域名其实不着急,将项目部署在服务器上在搞也不迟。但我还是提前说一下,嘻嘻。
我买的也是阿里云的域名,很便宜十块钱左右能买一年。域名没啥要求,简单的icu后缀即可。

购买域名很简单,但是审核通过的时间挺长,大概20天左右才可以使用。所以可以提前买好,然后趁这段时间把项目部署完毕。到时候直接就能用域名访问啦。
4 Halo 项目部署
我主要是参考halo 的官方文档来部署的。附上官方链接:https://docs.halo.run/zh/install/prepare
4.1 在 Linux 环境部署
首先,我们已经远程链接进入了服务器。(系统是Ubuntu 18.04 64位)

这样就算是成功进入了服务器。
首先,安装java环境
sudo apt-get install openjdk-11-jre -y
安装结束后,检查版本:
java -version
如果输出以下类似内容即代表成功
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode)
4.1 安装halo项目
1.创建新的系统用户 (此步可以省略,直接用root也行,我本人就是直接用的root)
创建一个名为 halo 的用户(名字可以随意)
useradd -m halo
给予 sudo 权限
usermod -aG wheel halo
为 halo 用户创建密码
passwd halo
登录到 halo 账户
su - halo
2.创建存放运行包的目录
root或halo账户操作相同。这里以 ~/app 为例
mkdir ~/app && cd ~/app
3.下载运行包
wget https://dl.halo.run/release/halo-1.4.8.jar -O halo.jar
4.创建工作目录
mkdir ~/.halo && cd ~/.halo
5.下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
6.编辑配置文件,配置数据库或者端口等,如需配置请参考配置。
vim application.yaml
配置
由于使用的是自带的H2数据库,故直接修改application.yaml为下述即可。
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
注意:
url为默认的数据本地存储地址,请勿修改。- 默认的数据库账户和密码为
admin和123456,建议将其修改,并妥善保存(此用户名和密码在 Halo 第一次启动的时候将自动创建)。 - 线上环境中,
h2的配置使用默认即可。如果需要手动修改一些数据,可将web-allow-others和enabled设为true来开启 h2 控制台,访问路径为ip:端口/h2-console。JDBC URL,username,password使用配置文件中的即可。
7.测试运行 Halo,如果上述操作均已完成,则可以试一下有没有配置成功。
cd ~/app && java -jar halo.jar
8.如看到类似以下日志输出,则代表启动成功。
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
如果看到下述内容,则说明,没有下载相应主题,故要去下载一个主题放进去。
ThemePropertyMissingException C:\Users\Administrator.halo\templates\themes\anatole:没有说明文件。
这个问题可以到Halo官网进行下载主题
下载完成以后改名为:anatole,替换原来的anatole文件夹,路径看下图:

然后再次运行,可以看到正常运行了。
4.3 作为服务运行
1.退出 halo 账户,登录到 root 账户(root账户忽略次步骤)
exit
2.下载 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
3.修改 halo.service
vim /etc/systemd/system/halo.service
4.修改配置
- YOUR_JAR_PATH:Halo 运行包的绝对路径,例如
/home/halo/app/halo.jar,注意:此路径不支持~符号。 - USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除
User=USER。
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=USER
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。
5.重新加载 systemd
systemctl daemon-reload
6.运行服务
systemctl start halo
7.在系统启动时启动服务
systemctl enable halo
8.您可以查看服务日志检查启动状态
journalctl -n 20 -u halo
域名代理,参考官方文档即可,我使用的是通过宝塔面板设置。
https://docs.halo.run/install/bt-panel
5 总结
通过上述步骤,项目就部署成功了,然后通过域名或ip地址即可访问。
本人博客:http://flowercoder.icu/