【问题标题】:Disable HTML stack traces by Xdebug通过 Xdebug 禁用 HTML 堆栈跟踪
【发布时间】:2011-08-02 12:13:49
【问题描述】:

管理员已在我们共享的 PHP 5.3.0 服务器中安装了 Xdebug 2.1.1,以便使用其调试器。现在,我几乎无法读取未捕获异常的堆栈跟踪,因为它们是由 Xdebug 格式化的,带有令人讨厌的颜色,与网站的 CSS 交互很糟糕:

由于 PHP 作为 Apache 模块运行,我尝试在 .htaccess 文件中禁用此功能,但无法成功:

php_flag xdebug.default_enable Off
php_flag xdebug.overload_var_dump Off
php_flag xdebug.show_exception_trace Off
php_value xdebug.trace_format 1

phpinfo()Local Value 列中显示了我的更改,但我仍然可以看到那些可怕的橙色表格。我需要更改的指令是什么?

【问题讨论】:

标签: php xdebug mod-php


【解决方案1】:

检查xdebug_disable()Docs

禁用堆栈跟踪

禁用在错误情况下显示堆栈跟踪。

另见xdebug.default_enableDocs

【讨论】:

  • xdebug.default_enable 没有明显效果,但在我的代码之上调用xdebug_disable() 工作正常。我会看看如何在我的网站设置中打包它。
  • 尝试将xdebug.default_enable 放入系统的php.ini 中,也许可以。此外,在 .htaccess 配置中使用 0 而不是 off 可能也会有所帮助,但这只是一个假设,我还没有测试过。
  • 好吧...我已经做了进一步的测试并且指令 is xdebug.default_enable 但似乎某处存在错误:在共享开发服务器中它被忽略了,在我的本地安装非常荣幸。
  • @Álvaro G. Vicario:您还在使用.htaccess 配置方法还是在使用php.ini?只是要求澄清。
  • 刚试过.htaccess(作为共享资源,不想打扰别人)。 phpinfo() 报告指令在所有情况下都已更改,这毫无价值。我用auto_prepend_file 写了一个对我有用的快速解决方法。
【解决方案2】:

您需要确保在 PHP 中也有 html_errors=0。 此外,橙色并不可怕;-)

【讨论】:

  • 我不确定我明白了。我已经使用了 HTML 错误以及error_prepend_stringerror_append_string,所以我可以显示换行符。如果我禁用它,Xdebug 不会绘制 HTML,但这也会使错误不可读,因为所有内容都在一行中。我不想在查看源代码窗口中搜索错误消息...
  • 如果您从 PHP 输出 json 以用于 Javascript、角度等,这将非常有用。
  • 如果@derick 回答你最好听。他写了 XDebug。
【解决方案3】:

在初始化脚本中添加如下代码:

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }

【讨论】:

  • 请注意remote_autostartremote_enable 控制调试器。它们与堆栈跟踪无关。
  • 就像 Alvaro 说的,这里的选项 #2 与显示 HTML 堆栈跟踪无关。
  • 根据建议更新。
猜你喜欢
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 2011-10-21
  • 2022-10-15
  • 2013-05-24
  • 1970-01-01
相关资源
最近更新 更多