trae里php的display_errors怎么开_trae显错误方法【技巧】

trae 中 PHP 的 display_errors 默认关闭,需手动开启:修改 /usr/local/etc/php/{版本}/php.ini 将 display_errors = On 和 error_reporting = E_ALL;或项目根目录建 .user.ini 同样配置,无需重启但仅限本目录生效。

trae里php的display_errors怎么开_trae显错误方法【技巧】

trae 中 PHP 的 display_errors 默认是关的

trae 自带的 PHP 环境(通常是 PHP 7.4/8.0+)默认关闭了 display_errors,所以即使代码报错,浏览器也只显示空白页或 500 错误,看不到具体错误信息。这不是你代码的问题,而是配置没开。

直接改 trae 内置的 php.ini 文件最可靠

trae 的 PHP 配置文件路径固定,改它就能全局生效,比在代码里用 ini_set() 更彻底(尤其对 Parse Error 这类语法错误无效)。

  • 找到配置文件:/usr/local/etc/php/{版本号}/php.ini(例如 /usr/local/etc/php/8.1/php.ini
  • 搜索 display_errors,把这一行改成:display_errors = On
  • 同时确认 error_reporting 没被设成 0,建议设为:error_reporting = E_ALL
  • 改完保存,**必须重启 trae 服务**:终端执行 trae restart 或点击桌面端「重启」按钮

如果只在某个项目临时调试,用 .user.ini 更安全

不想动全局配置?在项目根目录放一个 .user.ini 文件(注意开头是点),内容写:

display_errors = On
error_reporting = E_ALL

trae 的 PHP-FPM 默认支持 .user.ini,修改后无需重启,但要注意:

阿里妈妈·创意中心

阿里妈妈·创意中心

阿里妈妈营销创意中心

下载

立即学习PHP免费学习笔记(深入)”;

  • 该文件只对当前目录及子目录生效
  • 某些低版本 PHP(user_ini.filename 在 phpinfo() 里是 .user.ini
  • 不能覆盖所有错误类型(比如启动阶段的 Fatal Error 仍可能不显示)

浏览器看到错误但内容被 HTML 标签包裹?检查 output_buffering

开了 display_errors 却发现错误信息混在页面源码里、被 包着,大概率是开启了输出缓冲。查 php.ini 中:

  • output_buffering = Off(推荐开发时关闭)
  • 或者设为 output_buffering = 0(数值 0 表示禁用)
  • 否则错误会和正常 HTML 一起输出,浏览器渲染时被当成普通文本压在页面底部

这个细节容易被忽略,尤其是从生产环境复制配置过来时,output_buffering 常被设成 4096On

https://www.php.cn/faq/2035750.html

发表回复

Your email address will not be published. Required fields are marked *