Symfony2生产错误“404”

时间:2014-10-11 14:12:21

标签: symfony http-status-code-404 production-environment

我正在努力将我的环境从开发改为生产。 当我试图使用prod env进行无效路由时,我得到dev错误页面“NotFoundHttpException:”,而不是像“发送电子邮件给我们......”这样的prod错误页面。

有我的app.php:

use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

// Use APC for autoloading to improve performance.
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
// with other applications also using APC.
/*
$apcLoader = new ApcClassLoader('sf2', $loader);
$loader->unregister();
$apcLoader->register(true);*/

require_once __DIR__.'/../app/AppKernel.php';
require_once __DIR__.'/../app/AppCache.php';

$kernel = new AppKernel('prod', true);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

有什么想法吗?

谢谢, 阿德里安

1 个答案:

答案 0 :(得分:3)

您的app.php文件包含new AppKernel('prod', true)。构造函数的第二个参数确定它是否处于调试模式。第一个参数仅确定名称,可在加载特定于环境的配置文件时使用该名称。

只要启用了调试,错误页面就会显示详细版本,其中包含大量信息,可帮助您调试您的应用程序。在生产中,您永远不希望启用调试,并且您希望将其设置为false(这也是标准版中的默认设置):

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