Composer脚本忽略Symfony控制台环境变量

时间:2017-03-20 15:52:20

标签: symfony composer-php environment-variables symfony-console

我正面临一个问题,即我的Symfony应用程序的构建过程失败,正如许多不同的论坛(最近没有)所解释的那样。例如:

  

使用--no-dev进行作曲家安装时只能使用生产包   安装(应该是)。然而,当作曲家发布时   symfony脚本以开发模式启动,从而启动   当AppKernel.php无法找到所需的包时抛出错误   发展。这些脚本也应该在生产模式下执行!

Quote source

上述Github问题已关闭,因为显然可以通过将SYMFONY_ENV env变量设置为您选择的环境来修复:export SYMFONY_ENV=prod

我已经这样做了,并且调用printenv正确地打印了变量。我甚至可以手动调用Symfony控制台php bin/console。它将 prod环境中启动。

成功?看似但没有......调用composer install仍会强制所有脚本在dev环境中启动。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

根本原因似乎是没有全局设置的环境变量,因此无论用户命令最终运行的是什么,www-data通过我的部署脚本,还是root(我称之为{{1}来自控制台,没有我用默认用户创建的环境变量集。

sudo composer的新行中添加SYMFONY_ENV=prod,然后重新启动修复了该问题,脚本现在正在/etc/environment中运行。