wordpress报“the site is experiencing technical difficulties”大概率是致命错误触发5.2+的错误保护机制,因phpenv默认关闭display_errors且wp_debug未正确配置导致错误被静默屏蔽,需开启wp_debug_display、关闭wp_debug_log,并通过恢复模式链接手动触发定位具体插件或主题文件错误。

phpEnv 环境下 WordPress 报 “The site is experiencing technical difficulties” 不是 PHP 版本或扩展问题,大概率是致命错误触发了 WordPress 5.2+ 的致命错误保护机制——它会静默屏蔽错误,只显示这句提示,同时发邮件给你。
为什么 phpEnv 下看不到错误信息
phpEnv 默认关闭 display_errors,且 WordPress 在生产模式下主动抑制错误输出。即使你改了 wp-config.php 里的 WP_DEBUG,若没同步开启 WP_DEBUG_DISPLAY 或没关掉 WP_DEBUG_LOG 的干扰,错误仍被吞掉。
- 检查
php.ini(phpEnv 对应版本目录下的php.ini)是否含display_errors = Off—— 改成On - 确认
wp-config.php中有且仅有这三行生效:define('WP_DEBUG', true);define('WP_DEBUG_DISPLAY', true);define('WP_DEBUG_LOG', false); - 若已启用
WP_DEBUG_LOG,错误会写进/wp-content/debug.log,但页面仍空白——先关掉它再测试
快速定位插件/主题导致的致命错误
phpEnv 没法自动发恢复模式邮件(本地环境无 SMTP),但你可以手动触发 WordPress 恢复模式链接:
- 在浏览器访问:
https://yoursite.test/wp-login.php?action=enter_recovery_mode(替换域名) - 登录后,WordPress 会检测最近一次致命错误,并在仪表盘顶部显示红色横幅,点「查看详细信息」能看到具体哪个插件/主题文件、哪一行出错
- 常见罪魁:插件更新后不兼容 phpEnv 的 PHP 版本(比如用了
match表达式但 PHP 是 8.0 以下)、主题functions.php末尾多加了?>导致输出空格、或用了mysqli_*函数但没开mysqli扩展
检查 phpEnv 的扩展是否真启用
phpEnv 的「启用扩展」只是勾选配置项,不等于 PHP 进程实际加载了模块。尤其 mysqli、curl、openssl 这三个 WordPress 强依赖的扩展,容易漏启或路径不对。
- 运行
php -m | grep -i "mysqli\|curl\|openssl"(在 phpEnv 的 CLI 目录下执行)确认是否在列表中 - 若没出现,去 phpEnv 面板 → 当前 PHP 版本 →「扩展管理」→ 勾选后,务必点「应用配置」并重启 Apache/Nginx(仅重启 PHP-FPM 不够)
- 某些 phpEnv 版本对
pdo_mysql扩展名敏感,必须写全称,不能简写为pdo
真正卡住人的地方,往往不是找不到错误,而是错误日志里报的是 A 文件第 X 行,结果你发现那行只是个 require_once,真正的崩溃在被引入的 B 文件里——得顺着 include 路径一层层查。别跳过 debug.log 里「Stack trace」那一长串。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











