1. 为什么需要跨服务器迁移WordPress?
很多站长第一次搭建WordPress时,往往随便选个服务器就上线了。等网站流量增长后才发现:原来的1核1G配置根本扛不住访问压力,或者服务器地理位置导致海外用户访问缓慢。这时候就需要把网站搬到更强大的新服务器上。
我去年就遇到过这种情况:一个企业官网从阿里云轻量应用服务器迁移到腾讯云CVM。迁移后页面加载时间从3秒降到1秒内,跳出率直接下降了40%。迁移过程中最大的教训就是——环境一致性太重要了。第一次迁移时PHP版本没对齐,导致整个网站报500错误,紧急回滚才没影响线上用户。
2. 迁移前的准备工作
2.1 新旧服务器环境检查
打开宝塔面板的「软件商店」,记录以下关键信息:
- PHP版本(比如7.4)
- MySQL版本(比如5.7)
- Nginx/Apache版本
- 已安装的PHP扩展(opcache、redis等)
特别注意:MySQL从5.7迁移到8.0时可能会遇到兼容性问题。我有次迁移就栽在默认字符集差异上,建议先用phpMyAdmin导出SQL时显式指定字符集:
-- 导出命令示例 mysqldump -u root -p --default-character-set=utf8mb4 wordpress > backup.sql2.2 完整备份原网站
在宝塔面板操作:
- 数据库备份:进入「数据库」→ 找到对应数据库 → 点击「备份」→ 选择「压缩备份」
- 网站文件备份:进入「文件」→ 定位到
/www/wwwroot/你的域名→ 全选文件 → 点击「压缩」 - 隐藏配置文件:别忘了备份
.htaccess和wp-config.php
小技巧:大文件站点可以用SSH命令打包,比宝塔面板更稳定:
tar -zcvf site_backup.tar.gz /www/wwwroot/yoursite
3. 在新服务器部署环境
3.1 安装宝塔面板
通过SSH连接新服务器,执行安装命令(根据系统选择):
# CentOS yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh # Ubuntu/Debian wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh安装完成后,记得在安全组放行8888(面板)、888(phpMyAdmin)、80/443(网站)端口。
3.2 配置LNMP环境
关键步骤:
- PHP版本必须与原服务器一致
- MySQL建议使用InnoDB引擎
- 安装
fileinfo等WordPress常用扩展
避坑指南:有次我给客户迁移时,新服务器默认装了PHP8.0,结果老主题直接报语法错误。最后不得不降级到PHP7.4才解决。
4. 迁移网站数据
4.1 上传网站文件
通过宝塔「文件」管理器:
- 删除新站点自动生成的
index.html - 上传之前备份的压缩包
- 解压后检查文件权限(建议设为755目录/644文件)
# 如果上传大文件失败,可以用SSH分段上传 split -b 500m site_backup.tar.gz site_backup_ # 上传所有分卷后合并 cat site_backup_* > site_backup.tar.gz4.2 导入数据库
- 在宝塔创建同名数据库
- 通过「导入」功能上传SQL文件
- 检查
wp_options表中的siteurl和home值
常见问题:导入时报#1071 - Specified key was too long错误,需要在my.cnf添加:
[mysqld] innodb_large_prefix=ON innodb_file_format=Barracuda innodb_file_per_table=ON5. 关键配置迁移
5.1 域名解析切换
建议先在本地hosts文件测试新站点:
新服务器IP 你的域名.com www.你的域名.com确认无误后,再到DNS服务商修改A记录,TTL建议设短(如300秒)。
5.2 HTTPS证书部署
在宝塔「网站」设置中:
- 选择Let's Encrypt免费证书
- 开启强制HTTPS
- 检查混合内容问题(Chrome按F12看Console报错)
5.3 伪静态规则迁移
Nginx环境下典型的WordPress规则:
location / { try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent;6. 迁移后检查清单
基础功能验证:
- 前台页面能否打开
- 后台/wp-admin能否登录
- 文章/页面内容是否完整
插件兼容性:
- 禁用所有插件再逐个启用
- 特别注意缓存插件(Redis/Memcached配置)
性能调优:
# 安装OPcache加速 sudo apt-get install php-opcache在php.ini中添加:
[opcache] opcache.enable=1 opcache.memory_consumption=128监控设置:
- 宝塔「监控」开启HTTP监控
- 设置磁盘空间告警
7. 高级技巧:宝塔一键迁移API
对于同是宝塔面板的服务器,可以用官方插件:
- 在新服务器开启API接口(面板设置→API接口)
- 在旧服务器安装「宝塔一键迁移API」插件
- 填写新服务器的IP和API密钥
优势:自动同步所有配置(包括SSL证书、伪静态等) 缺点:大文件站点可能超时,建议先用传统方式备份
8. 常见问题解决方案
问题1:迁移后图片不显示
- 检查
wp-content/uploads权限 - 在数据库执行替换命令:
UPDATE wp_posts SET post_content = REPLACE(post_content, '旧域名', '新域名');
问题2:后台样式错乱
- 清除浏览器缓存
- 在
wp-config.php添加:define('CONCATENATE_SCRIPTS', false);
问题3:邮件发送失败
- 安装
WP Mail SMTP插件 - 配置第三方SMTP服务(如阿里云邮件推送)
整个迁移过程最关键的其实是细节把控。建议在低峰期操作,保留旧服务器至少48小时作为回滚预案。做好这些准备后,你会发现用宝塔迁移WordPress其实比想象中简单得多。