【问题标题】:Make a local Symfony 2.8 app act like it's in a prod environment让本地 Symfony 2.8 应用程序像在 prod 环境中一样运行
【发布时间】:2018-07-05 15:54:50
【问题描述】:

我有一个基于 Symfony 2.8 的应用程序。一个功能在我的本地开发环境中运行良好,但在生产中失败。我想让我的本地环境使用 prod 模式,以便希望复制问题。我尝试过的:

export SYMFONY_ENV=prod
app/console cache:clear --no-warmup

起初这似乎可以正常工作,因为我收到一条关于在 prod 环境中清除缓存的消息,但是当我加载应用程序时,调试工具栏是可见的,并说我处于开发模式。

我还尝试在 parameters.yml 和 config.yml 中查找环境的任何表示。我什么也没找到。

接下来我应该尝试什么?

【问题讨论】:

标签: php symfony testing environment-variables


【解决方案1】:

答案可能取决于很多因素:使用什么 web-server,使用什么 web-server 配置,你使用 php-fpm 还是 else,等等。

“export SYMFONY_ENV=prod”等控制台命令仅为同一会话中的控制台命令设置环境。但它们不会影响您的 Web 服务器行为。

当您在浏览器中打开项目页面时,应用程序对您在终端中键入的命令一无所知。如果你看到一个调试控制台,应用入口点可能是“web/app_dev.php”,环境在这里定义如下:

// web/app_dev.php

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

尝试将 'dev' 更改为 'prod'

【讨论】:

  • 不要忘记将第二个参数设置为false
【解决方案2】:

嗯,在 symfony2 中,dev 模式是通过文件 web/app_dev.phpprod - web/app 访问的。 php。 因此,如果您使用自己的本地网络服务器(apache 或 nginx),为了在 prod 模式下查看应用程序,您可能需要为您的网络服务器提供默认的 symfony 配置,例如如此处所述:https://symfony.com/doc/2.8/setup/web_server_configuration.html#nginx

如果您使用的是 symfony 内置的网络服务器,您可能需要使用提供的解决方案 ox160d05d。不过我建议使用自己的本地网络服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多