- 搬完打开网站一片白、跳出「Error establishing a database connection」、图片全部不见、邮件收不到——这些几乎都是同几个原因。
- 排查顺序:先确认你连到的是哪台主机 → 再看数据库设定 → 再看网址和 SSL → 最后看 PHP 环境。
- 大部分问题都能在 error log 里找到线索。
- 通用的 WordPress 错误(500 错误、白屏)更详细的解法见
BUILDER/WORDPRESS/EP04。
重点内容
先确认:你看到的是新主机还是旧主机?
很多「问题」其实只是 DNS 还没更新,你还连在旧主机:
- 用 DNS Checker 查 A 记录是不是新 IP
- 在命令提示字元输入
nslookup 你的域名,看自己电脑拿到的 IP - 检查 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 connection | wp-config.php 数据库资料没改成新主机的 | 改 DB_NAME、DB_USER、DB_PASSWORD、DB_HOST |
| 同上 | 数据库用户没加到数据库 | cPanel MySQL Databases → Add User to Database |
| 白屏 / 500 Internal Server Error | PHP 版本不同、插件不兼容 | 调成跟旧主机一样的 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 |
详细解法:数据库连接错误
- 打开新主机的
wp-config.php - 对照新主机 MySQL Databases(或 hPanel Databases)里的完整名称——含前缀,例如
newacc_wp或u123456789_wp - 确认该用户已被加到该数据库
DB_HOST:cPanel / Hostinger 共享主机通常是localhost- 还是不行:在 phpMyAdmin 确认数据库里真的有资料表(导入可能失败了)
详细解法:替换旧网址
适用:换了域名、用临时网址搬过、或从 http 换成 https。
- 先备份数据库
- 安装 Better Search Replace 插件
- Tools → Better Search Replace
- Search for:
http://旧网址;Replace with:https://新网址 - 先勾 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
官方文档: