Dev Exceptions显示在生产环境中

时间:2014-04-28 07:49:15

标签: symfony exception production-environment

我知道这是一个很大的NO NO ...并且在我的网站上线时不应该显示开发人员错误页面,我该怎么做才能确保dev环境错误消息没有出现在生产中?

enter image description here

为什么会出现这些?我认为在生产模式下默认关闭它?我错过了一个场景吗?

注意:这是在共享服务器上。我正在使用app.php而不是app_dev.php。

当我在本地进入生产模式时,它会正确显示正确的错误消息(如下所示):

哎呀!发生错误 服务器返回" 404 Not Found"。 有些东西坏了。请发送电子邮件至[email],告诉我们发生此错误时您在做什么。我们会尽快修复它。很抱歉给您带来不便。

然而在实际网站上,它显示了Symfony2 dev环境错误消息?

我尝试通过在app / Resource / TwigBundle / views / Exception 中创建error404.html.twig文件来制作自定义错误消息,但它仍然没有加载此文件,只显示开发人员错误消息。

1 个答案:

答案 0 :(得分:15)

在您的前端控制器(Symfony标准版中的web/app.php)中,创建了AppKernel的实例。 AppKernel继承constructor from Symfony's Kernel,这需要两个参数:

/**
 * Constructor.
 *
 * @param string $environment The environment
 * @param bool   $debug       Whether to enable debugging or not
 */
public function __construct($environment, $debug)

$environment参数仅确定使用的配置(config_dev.ymlconfig_prod.yml等)。 $debug参数是启用或禁用调试的参数(因此确定是否显示更少的异常)。

所以在app.php中,更改:

$kernel = new AppKernel('prod', true);

$kernel = new AppKernel('prod', false);

这应该用用户友好的错误页面替换详细的异常页面。