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

Geo*_*ier 5 deployment symfony 12factor

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

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

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

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

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

我欢迎任何帮助;)

Geo*_*ier 0

终于有时间检查Neodan发布的链接 ,一切都在那里!

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

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

如果您想要一个更安全的解决方案,我想您可以,正如我之前所说,配置您的网络服务器以添加环境变量并通过您的.bash_profile.bashrc文件导出它们,但要小心如何启动 shell(在部署应用程序时)例如)。我想说,它的维护更加复杂并且容易出错。

注意:您可能还需要注意如何命名变量以防止冲突。