我正在尝试将Rails应用程序移入生产环境,但是我遇到了Rails看不到我的环境变量的问题。
我在.bashrc文件中有数据库设置的密码,例如
export APP_NAME_DATABASE_PASSWORD=secretkey
在irb
ENV["APP_NAME_DATABASE_PASSWORD"]
返回secretkey
。
使用
RAILS_ENV=production rails c
而只是
rails c
返回secretkey
但启动应用程序时我得到
Access is denied (using password: NO)
我在“如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序”中使用了初始化脚本的稍微修改的版本来启动unicorn。
它托管在Ubuntu Server 14.04上。
export APP_NAME_DATABASE_PASSWORD=secretkey
最有可能将环境变量限定为bash进程。由于Unicorn不能作为bash进程的子进程运行,因此它无权访问此环境变量。
我建议将您的ENV变量存储在单个位置,例如application.yml
在应用程序开始时将其加载到您的ruby环境中。有一些很棒的工具可以做到这一点。我建议调查Figaro:https : //github.com/laserlemon/figaro。
这是与您的问题有关的另一篇文章:重新启动独角兽时重新使用.bashrc?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句