WordPress迁移教程:换服务器不丢数据
WordPress 换服务器是独立站运营中风险最高的操作之一。数据库连接失败、文件路径错误、内链断裂、甚至是全站白屏,任何一个环节出问题都会直接导致流量损失和订单中断。这篇教程不讲废话,直接拆解从旧服务器打包数据到新服务器恢复访问的完整流程,并给出每一步的检查清单和常见坑。
一、迁移前的准备工作
在动任何文件之前,先确认两件事:新服务器的环境是否兼容,以及旧服务器的数据是否完整可恢复。
1. 确认新服务器环境
WordPress 对服务器环境有最低要求。推荐使用 PHP 8.0 以上、MySQL 5.7 或 MariaDB 10.3 以上、支持 mod_rewrite 或 Nginx 的 rewrite 规则。在迁移前,先在新服务器上安装一个干净的 WordPress 站点,确认数据库连接和伪静态规则正常。
2. 准备迁移工具
推荐两种方案:
- 插件方案(适合新手):使用 UpdraftPlus、Duplicator 或 All-in-One WP Migration。优点是操作简单,缺点是大型站点容易超时或内存溢出。
- 手动方案(适合有一定经验的站长):通过 phpMyAdmin 导出数据库,使用 FTP 或 SSH 下载网站文件。优点是稳定可控,适合大文件或定制环境。
二、手动迁移:数据库和文件的完整导出
手动迁移虽然步骤多,但能最大程度避免插件导致的依赖问题。
1. 备份网站文件
通过 FTP 或 SSH 登录旧服务器,将网站根目录(通常是 public_html 或 www)下的所有文件下载到本地。重点关注以下目录和文件:
- wp-content:包含主题、插件和上传文件,是数据量最大的部分。
- wp-config.php:数据库连接信息,必须单独备份。
- .htaccess(Apache)或 nginx.conf(Nginx):包含伪静态规则和安全配置。
2. 导出数据库
登录旧服务器的 phpMyAdmin,选择 WordPress 所用的数据库。点击“导出”标签,选择“自定义”导出方式,确保以下选项被勾选:
- “添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT 语句”
- “使用事务和 InnoDB”
- “添加 CREATE DATABASE / USE 语句”
导出格式选择 SQL,点击执行后下载到本地。
注意:如果数据库超过 50MB,导出可能会超时。此时建议通过 SSH 使用 mysqldump 命令导出:mysqldump -u 用户名 -p 数据库名 > backup.sql
三、在新服务器上恢复数据
这一步最容易出错,严格按照顺序操作。
1. 上传网站文件
通过 FTP 将之前下载的所有文件上传到新服务器的网站根目录。注意保持目录结构不变。如果新服务器使用的是 Nginx,需要先配置好伪静态规则,否则网站会返回 404。
2. 创建新数据库并导入数据
在新服务器的 phpMyAdmin 中,创建一个新的数据库(字符集选择 utf8mb4_general_ci),然后点击“导入”,选择之前导出的 SQL 文件执行。如果文件过大,建议通过 SSH 导入:mysql -u 用户名 -p 新数据库名 < backup.sql
3. 修改 wp-config.php
编辑网站根目录下的 wp-config.php 文件,将数据库名称、用户名、密码和主机地址更新为新服务器的信息。注意数据库主机地址:如果数据库和网站在同一台服务器,一般填 localhost;如果是远程数据库,填对应的 IP 或域名。
4. 更新站点 URL
如果新服务器的域名没有变化,这一步可以跳过。如果域名变了(比如从临时域名换成正式域名),需要执行以下操作:
- 登录新服务器的 phpMyAdmin,打开 wp_options 表。
- 找到 siteurl 和 home 两个记录,将值改为新域名。
- 如果使用了缓存插件或 CDN,同时需要更新相关配置。
常见坑:只改 wp-config.php 中的域名是没用的。WordPress 会将 URL 硬编码到数据库中,必须通过数据库修改或使用插件批量替换。
四、迁移后的检查清单
数据恢复完成后,不要急着删除旧服务器。先逐一检查以下项目:
| 检查项 | 操作 | 常见问题 |
|---|---|---|
| 前台访问 | 打开网站首页,确认页面正常加载 | 白屏:检查 PHP 错误日志或 wp-config.php 中的 WP_DEBUG |
| 后台登录 | 访问 /wp-admin,确认能正常登录 | 登录后跳转回旧域名:修改 wp_options 表 |
| 内链和图片 | 随机点击几个页面,检查图片是否显示 | 图片 404:使用 Velvet Blues Update URLs 插件批量替换 |
| 伪静态规则 | 访问一个分类页或文章页,确认 URL 结构正确 | 404:重新保存一次固定链接设置 |
| SEO 数据 | 使用 Sitebulb 或 Screaming Frog 抓取全站 | 检查是否有 301 跳转或重复页面 |
| 功能测试 | 测试留言、搜索、联系表单、WooCommerce 购物流程 | WooCommerce 页面错误:重新保存永久链接和 WooCommerce 设置 |
五、迁移后的 SEO 和转化优化建议
换服务器后,搜索引擎需要重新爬取和索引你的网站。以下几步可以最小化流量波动:
- 更新 DNS 记录:如果域名解析指向了新服务器,TTL 值提前设置为 300 秒,迁移完成后改回默认值。
- 提交站点地图:在 Google Search Console 和 Bing Webmaster Tools 中重新提交 sitemap.xml。
- 检查页面速度:新服务器性能可能不同,使用 PageSpeed Insights 测试并优化图片、缓存和 CDN 配置。
- 监控 404 页面:迁移后一周内,定期检查 404 日志,及时做 301 重定向。
- WooCommerce 特别注意:检查产品 URL 是否变化、购物车和结算流程是否正常、订单通知邮件是否能正常发送。
建议:迁移完成后,保留旧服务器至少 7 天。如果发现新服务器有问题,可以随时切回旧服务器,避免长时间宕机。
常见问题
迁移后网站显示“建立数据库连接时出错”
原因通常是 wp-config.php 中的数据库信息错误。检查数据库名称、用户名、密码和主机地址是否与新服务器一致。如果确认无误,检查数据库用户是否有权限访问该数据库。
迁移后页面样式错乱
通常是主题或插件引用了绝对路径的资源。在数据库中执行批量替换命令,将旧域名替换为新域名。也可以使用 Better Search Replace 插件,但注意先备份数据库。
迁移后无法发送邮件
新服务器的 PHP 邮件功能可能被禁用。使用 SMTP 插件(如 WP Mail SMTP)配置第三方邮件服务,或检查服务器的 sendmail 配置。
总结
WordPress 迁移的核心在于数据库和文件的完整性与一致性。手动迁移虽然步骤多,但能让你完全掌控每一个环节。如果你追求效率,插件方案也值得尝试,但务必先在测试环境下验证。迁移完成后,按检查清单逐项确认,并保留旧服务器一周作为回退方案。最后,不要忘记更新 DNS 记录和提交站点地图,将流量损失降到最低。
现在,你可以打开新服务器的后台,检查一遍所有设置。如果一切正常,就可以安心删除旧服务器上的数据了。