modiqi
(莫蒂奇)
1
@migration Hello, I need to migrate a WordPress website to a new server.
Current situation:
- Old host: Shared hosting
- New host: VPS (2 cores, 4GB RAM)
- Website size: Database 150MB, files 1.5GB
- Domain name remains unchanged
My concerns:
- Could the migration process lead to data loss?
- How long will the downtime be?
- What should I pay attention to regarding DNS switching?
Questions:
- What is the recommended migration method?
- What are the detailed migration steps?
- How to ensure the website functions normally after migration?
Thank you for your help!
@modiqi 你好,莫蒂奇。
很高兴能为你提供 WordPress 网站迁移到 VPS 的指导。根据你提供的信息(共享主机到 VPS,数据量中等,域名不变),这是一个标准但需要谨慎操作的迁移场景。你的担心是合理的,我会逐一解答。
1. 评估与核心建议
- 复杂度:中等。主要挑战在于 VPS 环境的配置(如 Web 服务器、PHP、MySQL)需要手动或通过面板完成,这比共享主机更复杂。
- 风险:可控。只要遵循“先备份,再测试,后切换”的原则,数据丢失风险极低。
- 核心策略:强烈建议先在 VPS 上完成整个网站的迁移、配置和测试,一切正常后再切换 DNS。这可以将正式停机时间缩短至几分钟(仅 DNS 传播时间)。
2. 推荐的迁移方法
对于你的情况,我推荐 “插件迁移 + 手动调整” 的组合方案。这是最可靠且对新手友好的方式。
- 首选插件:All-in-One WP Migration。它非常适合 1.5GB 的文件大小(免费版上限为 512MB,你需要其付费扩展或使用替代方案)。
- 备选方案:
- Duplicator Pro:处理大型网站非常出色,是专业人员的首选。
- 手动迁移:通过 FTP 和 phpMyAdmin 进行,可控性最强,但步骤繁琐。
- 针对你的担心:
- 数据丢失:在操作前,对旧主机进行完整备份(文件+数据库),即可完全避免。
- 停机时间:如果采用上述“先测试后切换”的策略,理论停机时间接近于零。用户感知的停机时间仅为 DNS 全球生效的几十分钟到几小时。
- DNS切换:最关键的是降低 TTL 值。在切换前至少 24-48 小时,将域名的 TTL 设置为 300 秒(5分钟),这样切换后全球生效更快。
3. 详细迁移步骤(使用 All-in-One WP Migration 为例)
第一阶段:迁移前准备(在旧服务器操作)
- 完整备份:使用旧主机面板或插件(如 UpdraftPlus)备份所有网站文件和数据库。这是你的“后悔药”。
- 检查环境:记下旧网站的 PHP 版本、MySQL 版本及所有必需插件(特别是缓存、安全插件)。
- 降低 DNS TTL:登录域名注册商后台,将你域名的 TTL 值修改为 300 秒。
第二阶段:新 VPS 环境配置
- 搭建环境:在 VPS 上安装 Web 栈(如 LEMP: Linux + Nginx + MySQL + PHP 或 LAMP)。如果你不熟悉命令行,强烈推荐使用 宝塔面板 或 CyberPanel 等中文友好的一键管理面板来简化配置。
- 匹配环境:确保 PHP、MySQL 版本不低于旧服务器。安装必要的 PHP 扩展(如
curl, gd, mbstring, xml)。
- 创建站点:在面板中为你的域名创建一个新网站,并确保已配置好数据库。
- 获取临时访问方式:可以通过修改本地电脑的
hosts 文件,或将 VPS 的 IP 绑定到一个临时域名(如 test.yourdomain.com)来访问尚未切换 DNS 的新服务器站点。
第三阶段:数据迁移与测试(核心阶段)
- 在旧网站导出:
- 安装并激活 “All-in-One WP Migration”。
- 如果文件超过 512MB,需购买其“无限制扩展”或在插件设置中调整
max_file_size 参数(需能修改服务器 php.ini)。
- 使用插件导出整个网站为一个
.wpress 文件。
- 在新网站导入:
- 在新 VPS 的 WordPress 空站点(刚安装的)上安装同一插件。
- 通过插件上传并导入
.wpress 文件。插件会自动替换数据库中的网站 URL 和文件路径。
- 测试:
- 通过临时访问方式(如修改hosts)访问新服务器上的网站。
- 全面检查:首页、内页、文章、图片是否正常加载;登录后台;测试表单、搜索、购物车等核心功能;检查所有插件和主题设置。
- 修复可能的问题:常见问题包括文件权限(通常设置为
755 对于目录,644 对于文件)、PHP 内存限制不足等。
第四阶段:DNS 切换与上线
- 最终验证:确认新服务器上的网站完全正常。
- 切换 DNS:在域名注册商处,将域名的 A 记录指向你新 VPS 的 IP 地址。
- 等待生效:由于之前降低了 TTL,切换会较快生效。可使用
ping 命令或在线 DNS 传播检查工具查看状态。
- 监控旧服务器:DNS 完全切换后,旧主机上的站点可以暂时保留 24-48 小时作为应急回退。
第五阶段:迁移后优化
- 更新永久链接:登录新网站后台,直接点击“设置”->“永久链接”->“保存”,无需更改,以刷新规则。
- 配置缓存:在 VPS 上配置对象缓存(如 Redis)和页面缓存插件(如 WP Rocket, W3 Total Cache),充分发挥 VPS 性能。
- 设置安全:配置防火墙(如 Fail2ban)、安装安全插件(如 Wordfence)、并启用 SSL 证书(面板通常提供一键免费 Let‘s Encrypt 证书)。
- 删除旧数据:确认新站稳定运行一周后,可取消旧主机服务并删除其上的备份文件。
4. 如何确保迁移后网站正常?(检查清单)
- 前端:所有页面布局正常,图片/CSS/JS 加载无误,无 404 错误。
- 后台:可正常登录,所有菜单、文章、页面、评论数据完整。
- 功能:用户登录、评论、联系表单、搜索、导航菜单等功能工作正常。
- 插件/主题:所有已安装的插件和主题均被激活且设置得以保留。
- 链接:内部链接(尤其是菜单链接)指向正确的新地址。
- 性能:网站打开速度正常,无明显变慢。
- SSL:如果使用 HTTPS,确保新站点已正确配置且无混合内容警告。
时间估算
- 环境配置:1-2 小时(取决于对 VPS 的熟悉程度)。
- 数据迁移与导入:30 分钟至 1 小时(取决于网络速度)。
- 全面测试:1-2 小时。
- DNS 切换与传播:5 分钟操作,5 分钟到 24 小时全球生效(TTL 设置后通常 1 小时内主要地区生效)。
应急预案
- 回退方案:如果新站出现严重问题,立即将 DNS 记录改回旧服务器的 IP。旧站应保持原状直至迁移完全成功。
- 问题排查:迁移后常见问题通常是文件权限、数据库连接错误(
wp-config.php 中的配置)或固定链接问题。请逐一检查。
最后提醒:如果你对 VPS 命令行操作不熟悉,使用宝塔面板可以图形化完成绝大部分服务器配置工作,能极大降低迁移难度。
祝你迁移顺利!如果在具体步骤中遇到问题,可以随时在此贴出错误信息,我会进一步帮你分析。