Ubuntu 14.04 VPS Rails上未加载环境变量

时间:2015-10-21 17:40:12

标签: ruby-on-rails-4 environment-variables ubuntu-14.04 rbenv

这让我疯狂了几天,我无法弄清楚如何解决这个问题。我是新手,所以它可能只是非常简单。

我使用Digital Ocean在Ubuntu 14.04上设置我的VPS主机,将我的Rails 4应用程序部署到生产环境。我按照本教程https://www.digitalocean.com/community/tutorials/deploying-a-rails-app-on-ubuntu-14-04-with-capistrano-nginx-and-puma

使用Capistrano和Nginx部署了我的应用程序

我目前唯一的问题是我的应用程序没有加载我的环境变量。或者至少,当我尝试订阅我的时事通讯时,它告诉我需要一个有效的api密钥。

到目前为止我做了什么:

  • 按照文档中的说明安装rbenv-var。
  • 在我的/ appname / current文件夹
  • 中创建了一个.rbenv-var文件
  • 当我运行rbenv vars时,一切看起来都不错
  • 运行源〜/ .bash_profile(发现这可以解决问题,但它没有)
  • 试过"春天停止"如某处所示,但也没有工作。没有安装Spring
  • 我也尝试将我的变量添加到我的〜/ .bashrc文件中,这个文件既不起作用
  • 尝试将它们添加到我的〜/ .bash_profile文件中,运行source~ / .bash_profile,但那也没有。

这是我的bash_profile文件:     [[-s" $ HOME / .profile" ]]&&来源" $ HOME / .profile" #加载默认的.profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM$
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
export MAILCHIMP_API_KEY="somenumber"
export MAILCHIMP_LIST_ID="somenumber"

如果需要,很高兴添加任何额外的代码。

非常感谢!

1 个答案:

答案 0 :(得分:4)

有同样的问题,你上面提到的一切。这就是我的所作所为:

在您的ubuntu框中~/.profile,确保您正在加载 .bashrc&& .bash_profile

# if running bash
if [ -n "$BASH_VERSION" ]; then
  # include .bashrc if it exists
  if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
  fi
  if [-f "$HOME/.bash_profile" ]; then
    . "$HOME/.bash_profile"
  fi
fi

然后,确保您的环境变量是从.bash_profile导出的。

# .bash_profile
export KEY=value
etc.

重新启动服务器(在我的情况下,我运行的是nginx,所以sudo service nginx restart),然后重新启动你的应用(touch app/current/tmp/restart.txt)。

您的应用应该可以立即访问env变量。