WPLab

搬家后常见问题排查

约 8 分钟 EP08 Website Migration
  • 搬完打开网站一片白、跳出「Error establishing a database connection」、图片全部不见、邮件收不到——这些几乎都是同几个原因。
  • 排查顺序:先确认你连到的是哪台主机 → 再看数据库设定 → 再看网址和 SSL → 最后看 PHP 环境。
  • 大部分问题都能在 error log 里找到线索。
  • 通用的 WordPress 错误(500 错误、白屏)更详细的解法见 BUILDER/WORDPRESS/EP04。

重点内容


先确认:你看到的是新主机还是旧主机?

很多「问题」其实只是 DNS 还没更新,你还连在旧主机:

  1. 用 DNS Checker 查 A 记录是不是新 IP
  2. 在命令提示字元输入 nslookup 你的域名,看自己电脑拿到的 IP
  3. 检查 hosts 文件有没有残留的测试设定(EP07)
flowchart TD
    A["搬家后网站有问题"] --> B{"DNS 已经指到新主机?"}
    B -->|还没| C["等 DNS 生效<br/>或检查 hosts 文件"]
    B -->|已经| D{"显示什么?"}
    D -->|数据库连接错误| E["检查 wp-config.php<br/>数据库名、用户、密码、host"]
    D -->|白屏 / 500 错误| F["看 error log<br/>PHP 版本、插件、.htaccess"]
    D -->|图片不见 / 样式乱| G["检查网址设定<br/>mixed content"]
    D -->|SSL 警告| H["等 DNS 生效后重新签发 SSL"]

症状 / 原因 / 解决办法

症状可能原因解决办法
Error establishing a database connectionwp-config.php 数据库资料没改成新主机的改 DB_NAME、DB_USER、DB_PASSWORD、DB_HOST
同上数据库用户没加到数据库cPanel MySQL Databases → Add User to Database
白屏 / 500 Internal Server ErrorPHP 版本不同、插件不兼容调成跟旧主机一样的 PHP 版本;暂时停用插件
同上.htaccess 里有旧主机专用的规则先把 .htaccess 改名测试
首页正常,内页全部 404固定网址(Permalink)规则没生效WordPress Settings → Permalinks → 直接按 Save
图片不见、样式跑掉数据库里网址还是旧的 / 临时网址用 Better Search Replace 插件替换网址
浏览器显示「不安全」、锁头有警告SSL 还没签发,或页面混有 http 资源DNS 生效后签发 SSL;替换 http 为 https
网站跳回旧域名或临时网址siteurl、home 设定错改 wp_options 表,或在 wp-config.php 加 WP_HOME、WP_SITEURL
收不到邮件MX 记录还指旧主机,或新旧 MX 同时存在只留新主机的 MX(EP06)
寄出的信进对方垃圾邮件SPF / DKIM 没设加上新主机的 SPF、DKIM
联系表单寄不出新主机限制 PHP mail装 SMTP 插件,见 EMAIL/SMTP/EP01
上传文件失败新主机的上传大小、权限不同调 upload_max_filesize;文件夹权限 755、文件 644

详细解法:数据库连接错误

  1. 打开新主机的 wp-config.php
  2. 对照新主机 MySQL Databases(或 hPanel Databases)里的完整名称——含前缀,例如 newacc_wp 或 u123456789_wp
  3. 确认该用户已被加到该数据库
  4. DB_HOST:cPanel / Hostinger 共享主机通常是 localhost
  5. 还是不行:在 phpMyAdmin 确认数据库里真的有资料表(导入可能失败了)

详细解法:替换旧网址

适用:换了域名、用临时网址搬过、或从 http 换成 https。

  1. 先备份数据库
  2. 安装 Better Search Replace 插件
  3. Tools → Better Search Replace
  4. Search for:http://旧网址;Replace with:https://新网址
  5. 先勾 Run as dry run 看会改几笔,再正式执行

📌 不要直接用文字编辑器在 .sql 里取代网址——WordPress 有些设定是序列化(serialized)存的,字数对不上会坏掉,插件会正确处理。


查 error log

  • cPanel:Metrics → Errors,或 public_html/error_log 文件
  • Hostinger:hPanel 网站 Advanced → 错误日志 / PHP 设定页
  • WordPress 调试:wp-config.php 加上
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

错误会写进 wp-content/debug.log。查完记得改回 false。

常见误区

  • ❌ DNS 还没更新就开始改设定:你改的其实是旧主机,越改越乱。
  • ❌ 在 .sql 文件里直接取代网址:序列化资料被破坏,小工具和主题设定会消失。
  • ❌ 一直开着 WP_DEBUG:错误信息会显示给访客,暴露网站资料。
  • ❌ 问题还没解决就取消旧主机:失去了随时切回去的后路。

Sources

官方文档:

  1. How to migrate a website from cPanel to Hostinger - Hostinger Help Center
  2. How to fix DNS issue at Hostinger - Hostinger Help Center
  3. How to Manually Transfer a Website - SiteGround KB