宝塔面板怎么开启错误显示

juming
juming 初级会员超兽战士
发布于 2026-10-08 08:39 ·2 浏览 ·0 回复

学完这篇,你能让宝塔面板下的网站在出错时把 PHP 报错信息直接显示出来,而不是只给一个白屏或 500,同时知道改完为什么不生效、怎么排查。

第一步:先确认你要开的是哪种「错误显示」

这件事有两条线,别搞混:一条是网站程序的 PHP 报错(最常见的白屏、500、空白页),另一条是宝塔面板自身的报错(面板操作时报错只给一句「出错了」)。绝大多数人问的是第一条,本篇主线讲它,面板自身的放在第六步。

第二步:改 php.ini,打开 display_errors

这一步做完,PHP 就允许把错误打到页面上了。打开宝塔面板 →【软件商店】→【已安装】→ 找到你站点在用的 PHP 版本(比如 PHP-7.4)→ 点右侧【设置】→ 左侧【配置修改】。在打开的 php.ini 编辑器里按 Ctrl+F 搜 display_errors,改成:

display_errors = On
error_reporting = E_ALL
log_errors = On

如果搜不到这三行,直接在文件末尾另起一行补上。点【保存】。

注意:宝塔里同一台服务器常常装了多个 PHP 版本,站点用的是哪个版本,就必须改哪个版本的 php.ini。在【网站】→ 站点 →【设置】→【网站目录】上方能看到当前 PHP 版本。

第三步:检查 php-fpm 配置有没有把设置覆盖掉

php.ini 属于「默认值」,php-fpm 的池配置属于「强制值」,后者优先级更高,会把你在 php.ini 里的改动压掉。回到 PHP-7.4 的【设置】页 → 左侧【FPM配置文件】,搜索 display_errors,如果看到这一行:

php_admin_flag[display_errors] = off

把它改成 on,或者直接删掉这一行;同时确认 php_admin_flag[log_errors] = on。保存。

第四步:检查站点目录的 .user.ini

宝塔会给每个网站根目录放一个 .user.ini(用于设置 open_basedir),它也能设定 display_errors。用宝塔【文件】进入网站根目录,勾选「显示隐藏文件」,打开 .user.ini,确认里面没有 display_errors = Off 这类语句;如果有,改掉或删掉。

注意:.user.ini 有缓存,修改后要等最多 5 分钟(user_ini.cache_ttl)或重启 PHP 才生效。这是很多人「改完没反应」的真实原因。

第五步:重启 PHP 并验证

在【软件商店】→【已安装】→ PHP-7.4 那一行点【重启】(也可以在【设置】页点【服务】→【重启】)。然后在网站根目录新建 t.php,内容写:

<?php
ini_set('display_errors', 1);
echo ini_get('display_errors');
trigger_error('测试报错', E_USER_WARNING);

浏览器访问 http://你的域名/t.php,页面输出 1 并显示「测试报错」就成功了。测完记得删掉这个文件。

如果还是白屏,同时打开【网站】→ 站点 →【设置】→【网站日志】看 error_log,PHP 致命错误通常记在 /www/wwwlogs/你的域名.error.log 里。

第六步:框架和面板自身的开关

  • ThinkPHP:.env 或 config/app.php 里把 app_debug 设为 true
  • Laravel:.env 里 APP_DEBUG=true
  • WordPress:wp-config.php 里 define('WP_DEBUG', true);
  • 宝塔面板自身报错:右上角头像 →【面板设置】,找到【调试模式】打开(部分版本叫「开发者模式」),开启后面板会显示详细错误堆栈

注意:display_errors = On 会把服务器绝对路径、数据库账号等暴露给访问者,只适合调试。上线前务必改回 Off,把 log_errors 保留为 On,靠日志排错。

小结

  • PHP 报错显示的核心三行:display_errors = On、error_reporting = E_ALL、log_errors = On
  • 改对 PHP 版本:多版本共存时,改站点实际使用的那个
  • 优先级顺序:php-fpm 池配置 > .user.ini > php.ini,逐层检查
  • 改完必须重启 PHP,.user.ini 还有缓存延迟
  • 框架有自己的 debug 开关,改完 php.ini 可能还要再开一次
  • 调试完成就关掉 display_errors,用错误日志代替
版权声明:本文来自 GJ站长论坛《宝塔面板怎么开启错误显示》
原文链接:https://www.gj0.com/thread-847.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~