流心
发布于 2024-04-15 / 5 阅读
0

使用 Halo 从零部署自己的博客网站

准备工作:

购买一台属于自己的服务器,准备一个域名并且已经备案完毕,打开宝塔连接到购买的服务器

1.部署 Halo

打开 Halo 官网:https://www.halo.run

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

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

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

在官方文档中有几种安装 Halo 容器的方式

分别是:

  1. 创建 Halo + PostgreSQL 的实例

  2. 创建 Halo + MySQL 的实例

  3. 仅创建 Halo 实例(使用默认的 H2 数据库)

  4. 仅创建 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

打开就可以设置登陆账号密码

然后开始你的表演

记住在主题有个备案设置将自己的备案信息放在里面