Php 如何使用chef将opsworks变量拉入.env文件?

Php 如何使用chef将opsworks变量拉入.env文件?,php,amazon-web-services,nginx,laravel-5,aws-opsworks,Php,Amazon Web Services,Nginx,Laravel 5,Aws Opsworks,我对厨师很陌生,现在是最后一道难题了。我正在尝试使用AWS Opsworks中设置的变量在项目根目录中创建.env文件。我一辈子都想不出来 有没有人对此有什么建议或厨师食谱?我已经用谷歌搜索到了我的极限。如果你使用的是AWS*,你通常不会使用.env文件。.env文件模拟实际在操作系统级别设置的环境变量,这对于您在本地开发或您所在的托管平台不允许您自己设置这些变量时非常有用 因此,您只需在Opsworks中设置应用程序的环境变量,就完成了。这些将由PHP从操作系统加载,然后可供您的Laravel

我对厨师很陌生,现在是最后一道难题了。我正在尝试使用AWS Opsworks中设置的变量在项目根目录中创建.env文件。我一辈子都想不出来


有没有人对此有什么建议或厨师食谱?我已经用谷歌搜索到了我的极限。

如果你使用的是AWS*,你通常不会使用
.env
文件。.env文件模拟实际在操作系统级别设置的环境变量,这对于您在本地开发或您所在的托管平台不允许您自己设置这些变量时非常有用

因此,您只需在Opsworks中设置应用程序的环境变量,就完成了。这些将由PHP从操作系统加载,然后可供您的Laravel应用程序使用

*原因是您通常在此处存储敏感数据,如数据库和API凭据。您绝对希望将这些代码与您的代码分开,并且不受源代码控制

编辑:

如果需要,您可以在部署过程中编写一个类似这样的.env文件。这将是您的厨师脚本的样子:

node[:deploy].each do |application, deploy|
  # write out .env file
  template "#{deploy[:deploy_to]}/current/.env" do
    source 'env.erb'
    mode '0660'
    owner deploy[:user]
    group deploy[:group]
    variables(
      :env => deploy[:environment_variables]
    )
  end
end
<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>
这是.env文件模板的外观:

node[:deploy].each do |application, deploy|
  # write out .env file
  template "#{deploy[:deploy_to]}/current/.env" do
    source 'env.erb'
    mode '0660'
    owner deploy[:user]
    group deploy[:group]
    variables(
      :env => deploy[:environment_variables]
    )
  end
end
<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>

=

如果您使用的是AWS*,通常不会使用
.env
文件。.env文件模拟实际在操作系统级别设置的环境变量,这对于您在本地开发或您所在的托管平台不允许您自己设置这些变量时非常有用

因此,您只需在Opsworks中设置应用程序的环境变量,就完成了。这些将由PHP从操作系统加载,然后可供您的Laravel应用程序使用

*原因是您通常在此处存储敏感数据,如数据库和API凭据。您绝对希望将这些代码与您的代码分开,并且不受源代码控制

编辑:

如果需要,您可以在部署过程中编写一个类似这样的.env文件。这将是您的厨师脚本的样子:

node[:deploy].each do |application, deploy|
  # write out .env file
  template "#{deploy[:deploy_to]}/current/.env" do
    source 'env.erb'
    mode '0660'
    owner deploy[:user]
    group deploy[:group]
    variables(
      :env => deploy[:environment_variables]
    )
  end
end
<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>
这是.env文件模板的外观:

node[:deploy].each do |application, deploy|
  # write out .env file
  template "#{deploy[:deploy_to]}/current/.env" do
    source 'env.erb'
    mode '0660'
    owner deploy[:user]
    group deploy[:group]
    variables(
      :env => deploy[:environment_variables]
    )
  end
end
<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>

=

您可以在.env配置中引用环境变量。查看此快速指南:我可能没有看到它,但这篇博文在哪里谈到如何将opsworks中设置的变量放入.env文件?您可以在.env配置中引用环境变量。查看这篇快速指南:我可能没有看到,但这篇博文在哪里谈到如何将opsworks中的变量设置到一个.env文件中?我有它们,但它们不起作用。我没有使用内置在opsworks中的Php,因为nginx,我不得不使用定制的Php。提供的Php部署使用Apache。所以我设置了它们,代码是为了在Laravel中使用它们而编写的,但是没有。哇,谢谢你,这太棒了。你是否有机会知道某件事情是否可能只运行一次?像移民?我知道它的非主题Lavel迁移只会运行一次,它创建了一个名为
migrations
的数据库表,并跟踪已运行和未运行的内容。我有它们,但它们不起作用。我没有使用内置在opsworks中的Php,因为nginx,我不得不使用定制的Php。提供的Php部署使用Apache。所以我设置了它们,代码是为了在Laravel中使用它们而编写的,但是没有。哇,谢谢你,这太棒了。你是否有机会知道某件事情是否可能只运行一次?像移民?我知道它的非主题Lavel迁移只会运行一次,它创建了一个名为
migrations
的数据库表,并跟踪已运行和未运行的内容。