我在使用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和服务器但它没有帮助。知道为什么会这样吗?
答案 0 :(得分:1)
您可能需要将变量添加到unicorn.conf
文件中,因为您似乎正在使用其他用户启动Unicorn,或者未使用.bashrc
来源。
无论如何,我建议您使用dotenv gem将env变量存储在项目的.env
文件中。这是我所知道的最干净的方式。如果您需要capistrano
集成并轻松处理所有不同的环境,您还可以使用dotenv-deployment gem。