网站迁移实战:从旧服务器无缝搬到新服务器一次讲清


很多站长在服务器上把网站跑熟之后,最怕的就是"搬家"。可能是旧机器续费太贵、商家跑路、配置不够用,也可能是想把网站从虚拟主机升级到 VPS。迁移最让人担心的三件事无非是:数据丢、网站打不开、切换域名解析之后流量全没了。

其实网站迁移是有标准流程的,只要按步骤走,全程不需要太高深的技术。这篇文章按实际操作顺序,把迁移前的准备、文件与数据库备份、新环境搭建、数据迁移、域名切换、迁移后验证一次讲清,全程 30 分钟左右就能完成。

一、迁移前:先列清单,再动手

迁移最忌讳的是"拍脑袋直接搬",动手之前先把下面几项确认好:

  1. 确认新服务器配置:CPU、内存、带宽、数据盘是否满足需求,建议至少不低于旧机器,避免搬家后性能反而变差。
  2. 确认旧服务器环境:用的什么面板或 LNMP 环境、PHP 版本、MySQL 版本、伪静态规则,尽量在新服务器上保持版本一致。
  3. 规划停机窗口:建议选择凌晨流量最低的时间段操作,把对用户的影响降到最小。
  4. 提前调低 DNS 的 TTL:把域名解析的 TTL 调到 600 秒左右,切换后能快速在全网生效。
  5. 新服务器提前开通并测试 SSH 连通,确认磁盘空间足够放下解压后的网站文件。

二、全量备份旧服务器

备份是迁移的底线,备份做不完整,后面一切都是空谈。需要备份的不只是网站文件,还有数据库、伪静态规则、SSL 证书和计划任务。

  1. 网站文件:宝塔环境下一般在 /www/wwwroot/网站目录,纯 LNMP 一般在 /home/wwwroot 或 /var/www 下,打包命令:tar czf www_backup.tar.gz /www/wwwroot/你的目录
  2. 数据库:宝塔可以直接在"数据库"页面导出,命令行则是:mysqldump -u用户名 -p 数据库名 > db_backup.sql
  3. 伪静态规则:Nginx 的配置文件或 Apache 的 .htaccess 记得一并备份,很多网站搬家后 404 就是漏了这一步。
  4. SSL 证书:证书目录和证书配置一定要备份,否则切到新服务器后 HTTPS 会全部报错。
  5. 计划任务:Crontab 里的定时任务(备份、续期、清理日志)导出留存:crontab -l > crontab_backup.txt

备份完成后,把备份包下载到本地留底,或者直接用 scp / rsync 传到新服务器,双保险最稳妥。

三、在新服务器上搭建环境

新服务器先装好与旧机器同版本的运行环境,这一步做得好,后面导入数据几乎不会踩坑:

  1. 安装宝塔或 LNMP 环境,PHP、MySQL 版本尽量与旧服务器保持一致。
  2. 确认 PHP 扩展齐全,比如程序用到的 fileinfo、opcache、redis 等,少了扩展网站会白屏。
  3. 创建好与旧服务器同名的数据库和数据库用户,记住密码,后面改配置要用。

四、把文件和数据库搬过去

  1. 传输备份包:scp 用户名@旧服务器IP:/路径/备份包 . 或者用 rsync 增量同步更省时间。
  2. 解压网站文件到新服务器对应目录,注意目录结构要和旧服务器保持一致。
  3. 导入数据库:mysql -u用户名 -p 数据库名 < db_backup.sql
  4. 修改网站配置文件里的数据库连接信息:WordPress 是 wp-config.php,其他程序一般是 .env 或 config 文件。
  5. 设置目录权限和属主,尤其是有上传功能的站点,权限不对会导致图片传不上去。

这里有个非常实用的技巧:先不要动线上域名解析,在本机 hosts 文件里把域名临时指向新服务器 IP,用浏览器先验证一遍网站是否正常。这样即使有问题,也完全不影响线上用户。

五、切换域名解析

  1. 登录域名解析控制台,把 A 记录改成新服务器 IP。
  2. 等待 TTL 生效,可以用第三方 DNS 检测工具看全国各地解析的生效情况。
  3. 解析生效后不要急着关旧服务器,建议观察一两天,确认没有用户还在访问旧 IP、邮件和接口都正常后,再处理旧机器。

六、迁移后的验证与收尾

  1. 逐项检查:首页、内页、图片、后台登录、上传功能、搜索、伪静态 404 页面。
  2. 检查全站 HTTPS 是否正常,证书有没有部署到位。
  3. 如果程序里还残留旧域名或旧 IP,用 SQL 批量替换,WordPress 也可以直接改 wp_options 里的 siteurl 和 home 两项。
  4. 确认稳定后,清理旧服务器的敏感数据,别忘了解除旧机器的自动续费,避免白花钱。

总结

网站迁移没那么可怕,只要记住三个要点:备份完整、环境版本一致、先在本地验证再切 DNS,基本不会出问题。这套流程同样适用于换面板、换机房、商家跑路紧急抢救等场景,收藏起来,下次搬家照着做就行。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

测试标题

MySQL 8 性能优化实战:慢查询、索引与连接池配置一次讲清

评 论