首页 tutorials 服务器迁到 Hostease 全流程实测:从备份到验证的一步步操作

服务器迁到 Hostease 全流程实测:从备份到验证的一步步操作

网站搬家最怕的不是慢,而是搬到一半发现备份漏了、数据库连不上、域名解析指到旧机器上,前台直接打不开。这篇教程教你按”先备份、再传输、后配置、最后验证”的顺序完成一次服务器迁移,把风险点一步步排除。下面以迁往 Hostease 的 VPS(虚拟专用服务器,在一台物理机上隔离出的独立运行环境)为例,用真实命令走完整条流程,适合跑在小鸡上的站点,也适配独服(独立专用服务器,整台硬件资源独享)与云服务器(在虚拟化平台上按需分配资源的服务器)。

先说结论:服务器迁移没有玄学,只要做到”备份可恢复、传输可校验、配置可复现、上线可回滚”,成功率就很高。下面从打包数据开始,一步步展开每一个环节的实测细节。

一、迁移前先盘点:哪些数据必须带走

动手之前,先把机器上的东西分成三类:网站文件、数据库、配置文件与计划任务。网站文件通常存放在 Web 服务的根目录下,例如 Nginx 的 /var/www 或 Apache 的 /var/www/html;数据库则是 MySQL(关系型数据库管理系统)或 MariaDB 里的库;配置文件包括 Web 服务器、PHP(服务器端脚本语言)运行时、SSL(安全传输协议,为网站连接加密)证书等。最后别漏掉 crontab 里的计划任务,否则搬家后定时备份会静默失效。

用磁盘占用和条目清单确认范围,命令如下:

du -sh /var/www
mysql -u root -p -e "SHOW DATABASES;"
crontab -l

前三行分别看网站目录体积、列出数据库、导出计划任务。把这些输出保存下来,作为迁移的”清单”对照,避免到了新机器才想起漏了什么。

二、打包网站文件并压缩

范围确认后,先把网站文件压缩成一个归档包。这里推荐 tar(文件打包工具)+ gzip 组合,能保留文件权限与软链接,这对网站运行很关键。在旧服务器上执行:

cd /var/www
tar czf /tmp/backup-site.tar.gz html

如果网站目录体积超过几个 GB,可以先用 du 确认大小,再决定是否排除缓存目录。缓存的日志、临时文件不需要带走,用 --exclude 排除能显著缩小包体。例如:

tar czf /tmp/backup-site.tar.gz --exclude='cache/*' --exclude='logs/*' html

打包完成后,用 sha256sum 记录归档包的校验值,传输到新机器后再算一次,两值一致才能确认文件没有在传输中损坏。

网站文件与数据库打包备份流程示意图

三、导出数据库

网站文件打包好之后,进入数据库导出环节。用 mysqldump 把目标库导出成一个 SQL 文件,这里建议加上 --single-transaction,在读操作不锁表的情况下获得一致性快照,避免在导出中途数据被写入造成不一致。命令如下:

mysqldump -u root -p --single-transaction --databases mydb > /tmp/backup-db.sql

导出完成后同样记录校验值。对于大库(例如超过 1 GB),可以配合 gzip 压缩再记录,减小传输带宽耗时:

gzip /tmp/backup-db.sql
sha256sum /tmp/backup-db.sql.gz

到这一步,旧服务器上已经有了两份核心产物:website 归档包和数据库导出文件,加上它们的校验值。

四、传输到新服务器并校验

把两份归档从旧机器传到新机器,最稳妥的方式是 scp(基于 SSH 的文件复制命令)加上之前的校验值,确保文件完整到达。在新服务器上执行:

scp old_host:/tmp/backup-site.tar.gz /tmp/
scp old_host:/tmp/backup-db.sql.gz /tmp/
sha256sum /tmp/backup-site.tar.gz /tmp/backup-db.sql.gz

把算出的 sha256 与旧机器上记录的值逐行对比,完全一致再继续。这一步不要省,尤其是跨机房或跨运营商线路传输,偶发的丢包或中断都可能让压缩包在解压时报错。若 scp 因网络不稳定失败,可改用 rsync(增量同步工具)配合 --partial 断点续传:

rsync -av --partial --progress old_host:/tmp/backup-site.tar.gz /tmp/

文件校验通过后,在新机器上解压网站归档到目标目录,并导入数据库:

cd /var/www
tar xzf /tmp/backup-site.tar.gz
gzip -d /tmp/backup-db.sql.gz
mysql -u root -p mydb < /tmp/backup-db.sql

导入完成后,用 mysql -u root -p -e "SHOW TABLES IN mydb;" 核对关键表是否都在,别急着切 DNS。

数据从旧服务器传送到新服务器的校验传输示意

五、配置新环境:从数据库密码到 Web 服务

数据落位后,最常踩的坑是站点的配置文件里还写着旧机器的数据库地址或密码。以 WordPress(常用的内容管理系统)为例,wp-config.php 里的 DB_HOST、DB_NAME、DB_USER、DB_PASSWORD 必须改成新机器数据库的对应值。用编辑器打开核对:

grep -E "DB_HOST|DB_NAME|DB_USER|DB_PASSWORD" wp-config.php

若站点之前用绝对路径引用了旧域名或旧 IP,例如数据库里的 homesiteurl 字段或主题里的硬编码 URL,也要一并批量替换成新地址。数据库层面可以用 SQL 快速更新:

UPDATE wp_options SET option_value='https://new-domain.com' WHERE option_name IN ('siteurl','home');

接着把 Web 服务器配置指向新的网站根目录,并补上 PHP 与数据库模块,然后测试语法并重载:

nginx -t && systemctl reload nginx

配置完成后,先在本机用 hosts 或临时监听端口验证前台能正常渲染,再进入 DNS 切换环节。

六、DNS 切换与上线验证

本地验证通过后,才把域名解析切到新服务器。在域名管理后台把 A 记录或 CNAME(规范名称记录,指向目标主机名)的 IP 改成新机器地址。由于 DNS(域名系统,把域名解析为服务器 IP)缓存存在,全球生效需要几分钟到几小时不等,此时不要删除旧机器上的数据,保留回滚余地。

切换后用下面的命令确认解析与连接:

dig +short yourdomain.com
curl -I https://yourdomain.com
openssl s_client -connect yourdomain.com:443 -brief </dev/null | grep -i protocol

dig 应返回新 IP,curl 返回 HTTP 200,openssl 能协商到 TLS 1.2 或 1.3。三者都正常,基本可以判定迁移成功。建议再用浏览器从手机流量和不同地区的测试节点各访问一次,排除本地缓存造成的假象。

域名解析切换与站点连通性验证示意

七、复盘清单与行动建议

迁移收尾阶段,建议把 crontab 计划任务、日志轮转、防火墙规则逐一在新机器上重建,并开启一轮完整备份。把这次迁移用到的命令、路径和校验值归档成文档,方便半年后复盘或再次搬家参考。对于数据量小、时间紧的站点,也可以考虑更完整的迁移工具,但手工流程能让你掌握每一步的边界,必要时回滚更可控。

如果还在纠结新机选型,可先回顾这套海外与境内 VPS 性能差异,确认迁移目标能匹配带宽(单位时间内可传输的数据量)与线路需求。对网站提速叠加 CDN(内容分发网络,分散节点加速访问)感兴趣的话,可以进一步查看CDN 与高防服务协同的解析,以及这份WordPress 迁移指南里的工具对比。建议按"备份→传输→配置→DNS→验证"五步回放一遍,每步都留下可恢复的快照,才是迁移到新服务器最稳的打法。

本文来自网络,不代表WHT中文站立场,转载请注明出处。https://hostease.webhostingtalk.cn/tutorials/hostease-server-migration/

作者: wht-he-admin

下一篇
服务器迁移到新机房封面配图,左侧服务器机柜沿绿色箭头迁移到右侧云服务器

已经没有了

返回顶部