博客迁移记录:WordPress 迁移至 Halo

博客迁移记录:WordPress 迁移至 Halo(Docker Compose|阿里云服务器)
本次将个人博客从 WordPress 迁移至 Halo 轻量化博客系统,服务器为阿里云服务器,全程采用 Docker Compose 容器化部署,操作简单、数据安全、可无缝复用,特此记录完整迁移流程,方便后续复盘与重装。
一、迁移原因
WordPress 臃肿、插件冗余、后台加载慢、服务器资源占用高;Halo 轻量化、界面简洁、运维简单,适配个人技术博客,容器部署更省心,适合阿里云轻量/ECS 服务器长期稳定运行。
二、环境说明
服务器:阿里云服务器(CentOS / Ubuntu 通用)
部署方式:Docker + Docker Compose
迁移方案:WordPress WXR 标准数据迁移
部署特性:数据持久化,容器删除不丢失博客数据
三、安装 Docker 环境(阿里云服务器)
使用官方镜像+阿里云镜像源加速安装,适配阿里云服务器网络环境,规避下载超时问题。新版 Docker 已内置 Compose 插件,废弃旧版单独安装 docker-compose 方式。
# 一键安装Docker(阿里云镜像加速)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动Docker并设置开机自启
systemctl start docker
systemctl enable docker
# 验证安装(新版使用docker compose,无下划线)
docker --version
docker compose version四、Docker Compose 部署 Halo
1. 创建部署目录
mkdir -p /data/halo && cd /data/halo2. 编写 docker-compose.yml
version: '3.8'
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.26.0
container_name: halo-blog
restart: always
ports:
- "8090:8090"
volumes:
- ./halo2:/root/.halo2
environment:
- TZ=Asia/Shanghai
networks:
default:
driver: bridge3. 启动服务
# 后台启动容器
docker compose up -d
# 查看运行状态
docker compose ps4. 初始化后台
访问 阿里云服务器IP:8090,根据页面提示设置管理员账号密码,完成站点初始化。
⚠️ 阿里云服务器需提前在安全组放行 8090 端口,否则无法访问后台。
五、WordPress 数据导出
登录 WordPress 后台 → 工具 → 导出
选择「全部内容」,导出 XML 格式 WXR 迁移文件
备份网站本地图片附件,防止迁移后图片失效
六、Halo 数据导入
Halo 后台进入「应用市场」,安装并启用「站点迁移」插件
选择 WordPress 迁移,上传导出的 XML 文件
勾选文章、页面、分类、标签、评论,一键导入
导入完成后核对数据完整性
七、迁移后简单优化
图片修复:使用链接替换插件批量替换旧域名,开启远程图片本地化
SEO 适配:统一伪静态链接格式,提交站点 Sitemap
域名配置:解析域名至阿里云服务器,配置反向代理与 HTTPS
旧站处理:旧 WordPress 站点设置 301 重定向,保留 SEO 权重
八、常用运维命令
# 启动服务
docker compose up -d
# 停止服务
docker compose down
# 重启服务
docker compose restart
# 查看日志
docker compose logs -f
# 升级镜像
docker compose pull && docker compose up -d九、迁移小结
基于阿里云服务器 Docker Compose 部署 Halo 稳定高效,完美适配个人博客使用场景。全程数据迁移无丢失,迁移后站点加载速度更快、资源占用更低,运维成本大幅降低,整体体验优于 WordPress。
