如何在已部署的SF4应用程序上处理环境变量

时间:2018-01-15 20:09:25

标签: symfony deployment 12factor

Symfony自Symfony 3引入了一个新的Dotenv组件,它允许我们将环境变量作为应用程序参数处理。这看起来非常好,根据12factor app manifesto,这是最好的做法。

现在,关于Symfony 4,他们进一步推进了这种做法,这就是我开始通过 .env 文件使用环境变量的原因。

然后我想部署并且我意识到 .env 文件不能保留在服务器上,因为它与 parameters.yml 相同文件。

所以我一直在深入研究文档,我发现this article解释了我们可以通过一些webserver指令直接创建环境变量。这对于通过FPM执行的代码来说非常棒,但它并没有告诉我们如何通过CLI运行命令时如何处理环境变量。

我怎样才能做到这一点? 是否应该存储等效的 .env 文件?但那么参数会重复吗?

我欢迎任何帮助;)

1 个答案:

答案 0 :(得分:0)

终于有时间检查the link Neodan 已发布,一切都在那里!

因此,对于那些想知道该怎么做的人,只需编辑 / etc / environment 文件并添加变量即可。然后重新启动服务器,您的所有进程都可以访问这些变量。

我想这是最简单的解决方案。这种方法的唯一缺点是这些变量可供任何流程/用户使用,但就我而言,这是可以的。

如果您需要更多安全解决方案,我认为您可以按照我之前的说明配置您的网络服务器以添加环境变量并通过 .bash_profile .bashrc 文件,但要注意如何启动shell(例如,在部署应用程序时)。维护起来更复杂并且容易出错我会说。

N.B。:您也可能需要注意如何命名变量以防止碰撞。