从本地 Docker 环境迁移 WordPress 到 SiteGround 的完整流程
当我们在本地使用 Docker(WordPress + MySQL) 进行开发后,最终需要将网站迁移到线上环境,例如 SiteGround。本文记录从 SSH 登录、数据库导出、文件迁移、wp-config 修改、域名替换,到常见问题排查的一整套流程,方便下次直接查阅。
1. SiteGround 套餐是否支持 SSH 登录?
可以。SiteGround 的 WordPress 主机直接支持 SSH,只需在后台开启。
启用 SSH 的步骤:
- 登录 SiteGround → Site Tools
- 进入 Dev → SSH Keys
- 创建或启用 SSH Key
使用 SSH 登录时可以用:
1 | ssh username@yourdomain.com |
或使用 SiteGround 提供的服务器地址,例如:
1 | ssh gsgpm1051.siteground.biz -l u3158-294mrye0qlsq -p 18765 |
如果私钥未命名为 ~/.ssh/id_rsa,请使用:
1 | ssh -i ~/.ssh/your_key |
若连接有问题,可用 -v 查看详细日志:
1 | ssh -v ... |
2. 从本地 Docker 导出 WordPress 数据
2.1 导出数据库(mysqldump)
本地 MySQL 容器的数据库导出命令:
1 | docker exec -i <mysql-container-name> mysqldump \ |
你将得到一个 wordpress_db.sql 文件。
2.2 导出 WordPress 文件(wp-content、主题、插件等)
进入 WordPress 文件目录:
1 | cd /path/to/wordpress |
将整个 WordPress 文件夹(或至少 wp-content)打包:
1 | tar -czvf wp_files.tar.gz wp-content wp-includes wp-admin |
若你将数据库文件和 WordPress 文件存放在 Docker volume,也可以导出 volume。
3. 在 SiteGround 创建新的 WordPress 站点
进入 SiteGround:
Site Tools → WordPress 安装
创建一个新的 WP
记录以下数据库信息:
- 数据库名
- 用户名
- 密码
- 主机名(一般为 localhost 或 SiteGround 自动生成的 host)
SiteGround 支持两种导入数据库方式:
- phpMyAdmin
- Import Database Dump(推荐)
4. 上传 WordPress 文件到 SiteGround
登录 Site Tools → Site → File Manager
将 wp_files.tar.gz 上传到 public_html 或你的站点根目录,然后解压:
1 | tar -xzvf wp_files.tar.gz |
如果你本地 WordPress 文件包含 wp-content, wp-admin, wp-includes,请覆盖到 SiteGround 生成的 WordPress 文件中。
5. 修改 wp-config.php(重要)
确保数据库配置正确:
1 | define('DB_NAME', 'your_siteground_db'); |
如果你的原站使用了不同的 prefix,请保证一致。
6. 替换域名(从 localhost → 正式域名)
导入数据库后,需要替换内部链接。例如本地 WordPress 使用:
1 | http://localhost:2233 |
SiteGround 上的正式域名为:
1 | https://fssowellmed.com |
常用 SQL 替换指令(可通过 phpMyAdmin 执行):
1 | UPDATE wp_users SET user_url = REPLACE(user_url, 'localhost:2233', 'fssowellmed.com'); |
7. 迁移后遇到的问题:全局颜色(Global Colors)未同步
这是 Elementor 或 Astra/Megamenu 类主题中 常见问题。
原因:
全局颜色通常保存在:
wp_options(Elementor)customizer_settings(主题)- 序列化数据
这些字段内包含序列化数组,不能简单使用 SQL REPLACE,否则会破坏序列化结构。
推荐解决方案:
✔ 方案 A:使用官方插件“Better Search Replace”
- 安装插件:Better Search Replace
- 搜索:
localhost:2233 - 替换为:
fssowellmed.com - 勾选 序列化支持
- 执行
这样可确保序列化数组不会损坏。
8. 最终检查清单
| 项目 | 是否完成 |
|---|---|
| WordPress 文件(wp-content)已上传 | ✔ |
| 数据库导入成功 | ✔ |
| wp-config.php 已修改 | ✔ |
| 域名替换正确 | ✔ |
| SSL 已启用(SiteGround → Security → HTTPS Enforce) | ✔ |
| Elementor / 主题设置同步正常 | 部分需 |
总结
整体迁移流程主要分三部分:
- 导出本地 Docker 的 WordPress + MySQL
- 将文件和数据库导入 SiteGround
- 修复域名、序列化数据与主题/Elementor 设置
迁移过程中最容易忽略的是:
- 序列化数据替换
- 主题自定义(Customizer)设置未迁移
- Elementor 全局颜色未同步
只要按本文的流程操作,就能顺利将本地 Docker WordPress 环境迁移到 SiteGround 并保持功能完整。