准备工作:
购买一台属于自己的服务器,准备一个域名并且已经备案完毕,打开宝塔连接到购买的服务器
1.部署 Halo
打开 Halo 官网:https://www.halo.run

点击快速开始进入到安装指南,使用 Docker 部署是方便快捷的部署,使用数据库是 Halo 自带数据库,仅用于测试,正式环境推荐使用 Docker Compose 进行部署

可以在 2.15 的版本选择栏选择自己喜欢的版本,我选择最新的 2.15 版本进行安装

根据官方文档给出的命令创建出 Halo 的配置文件,也可以使用宝塔创建,在任意目录下创建出 Halo 文件夹以及 docker-compose.yaml 的配置文件 Halo2 的文件夹暂且忽略,因为我已经部署好了网站

在官方文档中有几种安装 Halo 容器的方式
分别是:
创建 Halo + PostgreSQL 的实例
创建 Halo + MySQL 的实例
仅创建 Halo 实例(使用默认的 H2 数据库)
仅创建 Halo 实例(使用已有外部数据库,MySQL 为例)
因为默认 H2 的数据库不安全所以推荐使用第 4 种方式,将数据库账号密码修改为自己的登陆数据库的账号密码,还有使用哪个数据库(我已经创建好数据库了 halo)
version: "3"
services:
halo:
image: halohub/halo:2.15
restart: on-failure:3
network_mode: "host"
volumes:
- ./halo2:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
- --spring.r2dbc.username=root
- --spring.r2dbc.password=
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 端口号 默认8090
- --server.port=8090然后再服务器终端进入刚才创建的文件夹 halo 中,使用以下命令启动 Halo 服务
docker-compose up -d输入以下命令可查看运行日志
docker-compose logs -f
2.开放端口
在宝塔面板中开放 8090 端口(没有开放端口访问不到网站)在服务器的实例中也需要开放端口

在服务器安全选项中开放 8090 端口点击安全点击管理规则

手动添加一个端口 8090 添加完成后即可通过 IP + 端口号访问 Halo

3.给网站添加一个域名
打开 Docker 容器可以看到 Halo2 正在运行

打开云解析 DNS 添加一个记录,主机记录就是网站前缀,填写一个好记的前缀,后缀就是自己买的域名
例如我的域名 liux.cn,访问地址就是 www-halo.liux.cn,记录值就是 服务器公网 IP 最后确定就可以

回到宝塔面板点击网站那一栏,PHP 项目,添加站点

点击站点设置添加 SSL 证书,建议在哪买的服务器就在哪买证书也可以通过以下方法申请证书
点击 Let's Encrypt 全选然后申请,申请成功后保存证书

接着点击反向代理 添加目标 URL http://服务器IP地址:8090
保存,然后在浏览器地址栏输入,刚才申请的域名还有解析的二级域名
https://www-halo.liux.cn

打开就可以设置登陆账号密码
然后开始你的表演
记住在主题有个备案设置将自己的备案信息放在里面
