生产中显示 Symfony2 错误 mod

Symfony2 Errors are displayed in Production mod

我在生产中移动了我的应用程序 mode 在 symfony 2 中使用此 cmd 行

php app/console cache:clear --env=prod --no-debug

并且在我的 "web/app.php" 文件中

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

我将 false 值更改为 true

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

但我的应用程序仍然给我页面错误,如 DEV mod ;例如,当我尝试访问错误的 link 时,出现此页面错误

正常页面错误应该是这样的

首先,验证 .htaccess 是否存在于您应用程序的 web 目录中。
否则,从 here 中获取并创建它。

打开它并检查 URL 是否重定向到 /app.php/
如果您看到包含 app_dev.php 的行,请将其更改为 app.php.

例如,如果您看到以下行:

RedirectMatch 302 ^/$ /app_dev.php/

将其更改为:

RedirectMatch 302 ^/$ /app.php/

然后,验证您的 web/app.php 看起来像 default .

此外,您给出的行应该是:

new AppKernel('prod', false')

最后,在您的产品环境的 vhost 中,确认您没有指定任何 index,例如 app_dev.php
默认 .htaccess 为您完成。

虚拟主机可以如下所示:

<VirtualHost *:80>
  ServerName your.domain
  DocumentRoot /var/www/path/to/project/web
  <Directory "/var/www/path/to/project/web">
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

希望您的问题来自于其中一个常见错误。

  • 检查您的虚拟主机(或 .htaccess)是否指向 app.php 文件
  • 清除缓存手动删除缓存文件夹的内容

    注意内核的第二个参数需要为false,否则无论如何都会显示消息错误

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