成功将运营一年多的WordPress 博客完整迁移至Halo!

为什么放弃WordPress?

  • WordPress:插件、缓存、冗余数据堆积,后台加载缓慢,服务器资源消耗高,主题丑

  • Halo:部署简单、资源占用极低、后台流畅、主题好看、资源丰富

部署过程

因为我这里已经有Mariadb了,所以对官网部署流程略微一改

如用其他数据库请访问Halo官网

参数说明

  • {halo_path}:Docker宿主机映射路径

  • {db_ip}:halo数据库ip

  • {halo_db}:halo数据库名

  • {halo_user}:halo数据库用户名

  • {halo_user_pw}:halo数据库用户密码

  • {halo_ip}:外部访问地址,请根据实际需要修改

数据库配置

创建Halo专属数据库用户

CREATE USER '{halo_user}'@'%' IDENTIFIED BY '{halo_user_pw}';

创建Halo专属数据库

CREATE DATABASE IF NOT EXISTS {halo_db} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

赋权

GRANT ALL PRIVILEGES ON {halo_db}.* TO '{halo_user}'@'%';

刷新权限

FLUSH PRIVILEGES;

Docker Compose配置

services:
  halo:
    image: halohub/halo:2.26
    restart: on-failure:3
    volumes:
      - {halo_path}:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    environment:
      # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
      - JVM_OPTS=-Xmx256m -Xms256m
    command:
      - --spring.r2dbc.url=r2dbc:pool:mariadb://{db_ip}:3306/{halo_db}
      - --spring.r2dbc.username={halo_user}
      - --spring.r2dbc.password={halo_user_pw}
      - --spring.sql.init.platform=mariadb
      - --halo.external-url=http://{halo_ip}:8090/

参考资料

  1. Halo文档