Unicorn没有读取ENV变量

时间:2015-02-28 01:26:31

标签: bash ruby-on-rails-4 unicorn

我在使用Unicorn和nginx的生产Ubuntu服务器上设置SECRET_KEY_BASE时遇到了一些问题。我将变量添加到.bashrc,当我尝试echo $SECRET_KEY_BASE时,它的读数正常,但由于某种原因我收到以下错误:

app error: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` (RuntimeError)

此外,当我尝试从生产环境中的控制台中使用ENV["SECRET_KEY_BASE"]访问变量时,我可以正常阅读。

我尝试重启Unicorn和服务器但它没有帮助。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

您可能需要将变量添加到unicorn.conf文件中,因为您似乎正在使用其他用户启动Unicorn,或者未使用.bashrc来源。

无论如何,我建议您使用dotenv gem将env变量存储在项目的.env文件中。这是我所知道的最干净的方式。如果您需要capistrano集成并轻松处理所有不同的环境,您还可以使用dotenv-deployment gem。