【问题标题】:How to get native php http 500 error pages in symfony2?如何在 symfony2 中获取原生 php http 500 错误页面?
【发布时间】:2014-07-23 18:21:03
【问题描述】:

在 Symfony2 中,当抛出错误 500 时,我会收到一条自定义 twig 错误消息:

哎呀!发生错误 服务器返回“500 内部服务器错误”。 东西坏了。请通过 [email] 给我们发送电子邮件,并让我们知道发生此错误时您在做什么。我们会尽快修复它。给您带来的不便,我们深表歉意。

我只想要默认的 php 错误。 如果可能,仅在 dev 中。

display_errors 在 php.ini 中是 on 并查看 phpinfo()

我尝试将以下行添加到 app/config/config.yml

services:  
    twig.exception_listener:
        class: DateTime
        #dummy to prevent twig from handling http error pages

结果是我得到一个空白页面,而不是带有错误和调试行的php错误页面。

谢谢, 鲍里斯

【问题讨论】:

    标签: php apache symfony error-handling


    【解决方案1】:

    那是因为 Symfony2 封装了从 Request 到 Response 的整个过程。当 Symfony2 没有捕获到原生 PHP 错误时,就会发生原生 PHP 错误。 如果不是原生 PHP 错误,则不能抛出原生 PHP 错误。仅当 Symfony2 核心无法呈现响应时,您才会得到真正的 500 错误代码页。

    我没有看到任何其他解释。更多报错流程可以通过this link找到。

    此链接解释了为什么您确实有一个空白页面:500 错误代码异常被抛出,但 Twig 不再监听此事件(因为您禁用了它)。所以什么都没有发生。

    【讨论】:

    • 但是是否可以处理和呈现错误输出,例如虽然树枝?我很想看到错误的原因而不是标准消息。而且每次打开日志部分都会消耗大量时间。你如何调试?
    • 在开发模式下,Twig 默认打印异常和错误内容。您可能更改了此设置?
    • 不是我,但显然已经改变了。 :) 我会看看。谢谢。
    猜你喜欢
    • 2011-07-21
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多