WordPress迁移网站,难度不算高,但不少人耗费大量时间,甚至长时间停留在维护模式。能不能顺利迁移,不在于技术本身,而是前期准备工作。我整理几次迁移站点积累的经验,按步骤操作基本不会出严重故障。
迁移前先在新主机做好基础配置。新建数据库,记下数据库名称、用户名、密码、主机地址四项信息,后续配置会用到。PHP版本尽量和旧主机保持一致,旧站点运行PHP7.4,新主机默认PHP8.2,老旧插件容易报错页面空白。提前开通文件管理器或者FTP账号,用来上传站点文件。新主机如果支持一键安装WordPress,不要执行,我们需要干净环境,不需要预装全新程序。

旧站点首要操作是备份,并且准备两份备份文件,一份站点文件,一份数据库。站点文件用FTP工具或是主机面板文件管理器打包下载,完整下载WordPress根目录,不要漏掉wp-content目录下主题、插件、上传图片。数据库进入phpMyAdmin,选中对应数据库,导出SQL文件。导出字符集选择utf8mb4,防止中文乱码。两份备份下载到本地,暂时不要删除旧站点,确认新站点正常访问之后再处理旧数据。
文件上传到新主机,导入数据库。导入前在新主机phpMyAdmin选中刚刚新建的数据库,执行导入。SQL文件体积较大,几十兆以上,phpMyAdmin上传容易失败,这种场景优先使用命令行导入,或是联系主机技术协助导入。导入完成核对表前缀,旧站点如果不是默认wp_前缀,导入之后保持相同前缀,否则程序无法连接数据库。
接下来是关键步骤,修改wp-config.php。文件存放于WordPress根目录,打开文件,把数据库名、用户名、密码、主机地址四项替换为新主机信息。保存文件,暂时不要访问网站,还要处理域名相关设置。
域名不变,仅更换服务器,数据库保存的站点地址还是原有域名,无需改动。如果迁移同时更换域名,进入数据库修改两处内容。phpMyAdmin找到wp_options数据表,修改siteurl和home字段为新域名。跳过这一步,网站持续跳转旧地址,后台都无法进入。
域名解析提前修改。登录域名管理后台,A记录指向新主机IP。TTL数值调低,设置300秒,加快解析生效速度。解析生效需要时间,几分钟到数小时不等,这段时间旧站点依旧正常访问,不用关停。
DNS还未全网生效,想要测试新站点是否正常,可以修改本机hosts文件,直接把域名指向新主机IP。仅本机访问新站点,其余访客依旧访问旧站点。Windows hosts文件路径C:WindowsSystem32driversetc,Mac、Linux路径/etc/hosts。新增一行填写新主机IP与域名,保存文件。浏览器访问域名,页面正常打开、后台可以登录,代表新站点配置无误。测试阶段全部禁用插件,切换默认主题,排除插件、主题带来的故障。测试完成,逐个启用插件排查。
确认新站点运行正常,再调整DNS解析。等待DNS全网生效,一般数小时到一天,之后关停旧站点。不要立刻删除旧主机数据,保留一周左右,新站点出现问题可以快速回滚。
几个常见坑提前留意。旧站点固定链接使用/%postname%/这类格式,迁移新主机文章页面打不开,进入后台设置,点击保存更改,自动刷新重写规则。SSL证书在新主机重新申请,选用免费Let's Encrypt证书,申请完成,WordPress后台站点地址修改为https。更换主机之后邮件发送功能经常失效,新主机PHP mail函数大概率被禁用,安装WP Mail SMTP插件配置即可解决。wp-content/uploads目录权限,新主机设置755依旧提示无法上传文件,可以尝试调整为775,不同主机权限要求不一样。
整个迁移流程,耗时最多的环节是文件传输与数据库导入,其余操作只是填写信息、点击按钮。迁移完成,访问首页、文章页面、后台、图片资源,全部正常代表迁移成功。备份环节不要偷懒,见过用户没有备份直接迁移,数据库导入中途报错,旧站点已经删除,很难补救。