服务器迁移实战教程:手把手教你将网站从旧服务器搬到新家
服务器迁移这事儿,听起来高大上,实际操作起来无非就是“打包-搬运-解包-调试”四个环节。但每个环节都藏着坑,稍不注意就可能造成网站长时间离线或数据丢失。今天我用真实踩坑经验,写一份接地气的迁移指南,附带实用的避坑清单。
第一步:迁移前准备(花30分钟,省3天)
-
备份!备份!备份!
- 数据库:用phpMyAdmin导出SQL文件,或命令行执行
mysqldump -u root -p 数据库名 > backup.sql - 网站文件:用FTP或rsync完整下载,注意隐藏文件(.htaccess、.env等)
- 配置文件:nginx/apache配置、php.ini、cron任务列表
- 数据库:用phpMyAdmin导出SQL文件,或命令行执行
-
确定迁移方案
- 同操作系统(如CentOS → CentOS):直接复制文件+数据库
- 跨系统(如CentOS → Ubuntu):注意PHP版本、扩展、依赖库差异
- 同机房/同区域:用内网传输,速度快且免流量费
第二步:数据迁移(核心操作)
方案A:手动打包迁移(适用于小网站,<5GB)
# 旧服务器打包文件
tar -czf site_backup.tar.gz /var/www/html
# 数据库导出
mysqldump -u root -p --all-databases > db.sql
# 下载到本地
scp root@旧IP:~/site_backup.tar.gz /本地路径/
方案B:在线同步迁移(推荐,大站必备)
用rsync增量同步,避免停机:
rsync -avz --progress --delete root@旧IP:/var/www/html/ /新服务器对应目录/
避坑提醒:
- 数据库字符集要一致(常见utf8mb4),否则中文乱码
- 检查
.htaccess文件是否被忽略,这玩意儿丢了伪静态就废了 - 如果网站有图片/附件,优先同步静态资源,再同步程序代码
第三步:新服务器环境配置
假设你新买了沐雨云服务器,以下是标准配置流程:
-
安装LNMP/LAMP环境
- 使用一键安装包(如lnmp.org)或手动安装
- 必须匹配旧服务器的PHP版本,否则WordPress等程序报错
-
导入数据库
mysql -u root -p 新建数据库名 < backup.sql -
解压网站文件到正确目录
tar -xzvf site_backup.tar.gz -C /var/www/html chmod -R 755 /var/www/html # 必要时改为777 -
修改配置文件
- 修改
wp-config.php或config.php中的数据库连接信息 - 修改nginx/apache虚拟主机的网站目录路径
- 如果是SSL站,记得上传证书并配置
- 修改
第四步:DNS解析切换(决定停机时间的关键)
推荐策略:降低TTL值
- 提前48小时将旧域名的TTL改为300秒(原默认3600秒)
- 正式迁移时,将A记录指向新服务器IP
- 等待全球DNS生效(通常10分钟-2小时)
踩坑提醒:
- 别直接删除旧服务器!保留至少24小时,用于处理遗漏的请求
- 如果用了CDN(如Cloudflare),还需要更新源站IP
- 检查邮件服务器MX记录、子域名记录是否同样需要迁移
第五步:迁移后验证(步骤清单)
- 访问网站首页,检查有无报错
- 尝试登录后台,测试所有常用功能
- 检查图片/样式是否加载正常
- 查看服务器错误日志:
tail -f /var/log/nginx/error.log - 用
curl -I 域名检查HTTP状态码 - 测试邮件发送功能(关键!很多站迁移后邮件系统失效)
实用工具与命令速查
- 文件对比:
diff -r 旧目录 新目录 - 全站替换域名:用sed命令替换数据库中的旧域名:
UPDATE wp_posts SET post_content = REPLACE(post_content, '旧域名', '新域名'); - 批量修改文件权限:
find /var/www/html -type f -exec chmod 644 {} \;
为什么推荐沐雨云服务器做迁移目的地?
我连续用了3台沐雨云服务器做迁移,实际体验如下:
- 迁移工具现成:后台自带“快照+镜像”功能,只需一键创建快照,新服务器直接恢复镜像,省去手动配置环境的步骤
- 内网传输免费:如果你新旧服务器都在沐雨云,直接用内网IP传文件,速度跑满100Mbps,还不要流量费
- 环境一致性好:他们家镜像市场里有和我旧服务器完全一样的操作系统+软件组合,直接拿来用,少了很多兼容性问题
- 客服响应快:有次迁移后数据库连接不上,工单10分钟内远程帮我改了配置文件
终极避坑清单
- ❌ 不要直接复制运行中的数据库,先锁定写入:
FLUSH TABLES WITH READ LOCK; - ❌ 不要手动修改
wp-config.php时忘记改表前缀 - ❌ 不要忘记更新缓存插件(Super Cache等)的配置
- ❌ 不要忽略邮件服务器迁移(邮件丢失非常麻烦)
- ✅ 正式切DNS前,先修改本地hosts文件测试新服务器
迁移完成后的24小时内,建议保留旧服务器不停机,等确认所有流量都正确到达新服务器再关闭。记住:服务器迁移的核心原则是——宁可慢,不可错。