【问题标题】:symfony prod still devsymfony prod 仍在开发中
【发布时间】:2016-07-30 08:34:42
【问题描述】:

我是 Symfony 2.8 的新手,我似乎无法让我的开发人员进入生产模式。

尽管我运行了以下命令:

创建资产

php app/console assetic:dump --env=prod --no-debug

清除缓存

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

预热缓存

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

如果我是对的(我可能不是因为它不起作用)那就应该是它。

我什至尝试在 app.php 中将 $kernel = new AppKernel('prod', false); 设置为 $kernel = new AppKernel('prod', true);。但这也无济于事。

这个生产应用程序在 Ubuntu 14.04 上运行,带有 apache2 和 php 5.5

在这个问题上的任何帮助都会很棒。

【问题讨论】:

  • 有什么问题?为什么你说你还在devenv?
  • 当我转到我的测试页面时,它仍然说欢迎使用 2.8.4_Dev 而不是 Prod
  • 这个页面可以在link找到。这实际上是默认 index.html.twig 的副本

标签: php symfony deployment production


【解决方案1】:

我猜你必须把它部署在服务器上,而不是你的本地机器上。 app_dev.php 在设计上不会在生产服务器上运行。您可以通过添加自己的 IP 地址来修改它,然后它就会运行。

反正我也遇到过这个问题。您实际上并未处于debug 模式。只是 Symfony 的构建过程中一定出了问题,因为他们的稳定版本是以-DEV 为后缀的。

查看vendors 目录中的文件Symfony/Component/HttpKernel/Kernel.php。寻找const VERSION。它的值可能类似于x.x.x-DEV

【讨论】:

  • 找不到文件Symfony/Component/HttpKernel/Kernel.php,但在我的本地机器上进行搜索将我指向 Bootstrap.php.cache 的方向。所以我在我的远程服务器上查找了它,并且这个文件中的 const VERSION 设置为x.x.x-DEV。我将其更改为x.x.x-prod,现在它显示我正在生产中。希望这可以解决问题。是否可以进行检查以绝对确定我正在生产?
  • 您应该阅读有关Symfony environments 的文档。更改VERSION 的值不会改变实际环境,它只是一个表示值。你可以忽略它。环境由前端控制器设置,app_dev.phpapp.php。您无需运行检查即可查看您所在的位置,您可以假设如果您从 app_dev 运行应用程序,您在 devapp.php 中,您在 prod .
【解决方案2】:

两件事:

首先你错过了正确的命令:

php app/console assets:install --env=prod --no-debug

现在它应该可以工作了:)

第二,在您的网址中,您可以像这样访问生产环境:

http://whatever/app.php

不是

http://whatever/app_dev.php

【讨论】:

  • 我尝试了第一个命令,但它仍然显示 Welcome to Symfony 2.8.4 dev。如果我将 app.php 添加到它,它会自动从 url 中删除它。如果我添加 app_dev,我会得到 您无权访问此文件。查看 app_dev.php 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 2017-09-18
  • 2019-10-09
  • 2011-09-28
  • 2019-03-12
  • 2018-09-23
  • 1970-01-01
相关资源
最近更新 更多