【问题标题】:how to add environment variable in linux for rails app?如何在 linux 中为 Rails 应用程序添加环境变量?
【发布时间】:2017-12-13 17:19:07
【问题描述】:

我需要设置一个环境变量供 Rails 应用使用

SECRET_KEY_BASE=9941144eb255ff0ffecasdlkjqweqwelkjasdlkjasd

生产的配置设置如下所示

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

如何使用linux命令设置环境变量

export VARNAME="my value" 

我尝试设置变量,但看起来它需要适合正确的用户。对不起,我不是 linux 专家。 我很感激任何帮助!谢谢!

【问题讨论】:

  • 您使用的是哪个操作系统?
  • 您所说的是什么意思,但看起来它需要适合正确的用户?顺便说一句export VARNAME="my value" 有效。
  • 我正在使用 ubuntu。
  • @Pavan 该命令需要以 root 用户身份运行吗?

标签: ruby-on-rails linux environment-variables


【解决方案1】:

对于您的本地开发,我建议您使用 dotenv (https://github.com/bkeepers/dotenv) 或 figaro (https://github.com/laserlemon/figaro) 并按照您在 gem 本身中找到的 README 进行操作。与直接使用环境变量相比,这为您提供了更大的灵活性,因为您仅为该特定项目设置它们,并且每个项目可以有不同的它们。

您需要有一个.env 文件或一个application.yml 文件,您将在其中定义您的环境变量。

请记住不要提交或推送此文件到您的存储库,因为它包含敏感信息!

当您将部署到生产环境时,您可以使用真实的环境变量或使用管理面板控制(例如在 Heroku 上)

【讨论】:

  • 如何在生产环境中为应用设置环境变量?
  • 这取决于您部署应用程序的位置。如果需要,您也可以在生产环境中使用 .env 或 application.yml。
  • 以下是您在 Heroku 上的操作方式:devcenter.heroku.com/articles/config-vars
  • 对不起,我使用的是 vps 而不是 heroku。我需要 linux 命令来设置环境变量。
  • 如我的回答中所写,我强烈建议您使用dotenvfigaro
【解决方案2】:
export VARNAME="my value"

以上内容适用于您当前的终端会话。在此命令之后,所有后续命令都可以访问此变量。尝试运行:

echo $VARNAME

它将在控制台中打印值my value。如果您希望此行为持续存在,您需要将 export 命令放在操作系统的配置文件中(~/.bashrc 在 Ubuntu 的情况下)。

编辑此文件后,重新启动终端,或运行以下命令:

source ~/.bashrc

这将在您当前的终端会话中重新加载文件。或者,您可以尝试运行 Rails 服务器(或 rake 命令),如下所示:

VARNAME="my value" rails s

【讨论】:

  • 感谢我什至在 .bashrc 文件中有它,但似乎 Rails 服务器正在另一个帐户上运行。是否应该添加到root用户?
  • @kofhearts - .bashrc 是用户相关文件。如果服务器从不同的帐户运行,则应在该帐户的.bashrc 文件中设置。
  • 如何找到生产中的 Rails 服务器在哪个用户下运行?
  • @kofhearts - 如果这是从根级别帐户运行的,您永远无法知道。尝试运行ps aux | grep rails。它显示了运行 Rails 服务器的帐户。
  • 谢谢你这样做。好的,我忘记了我使用部署用户进行 capistrano 部署。所以这意味着我需要将导出放在创建的部署用户的 .bashrc 文件中。我也没有把导出放在最后,而是在#if没有交互运行之前,不要做任何事情,最后它工作了!!谢谢!
猜你喜欢
  • 2015-10-27
  • 1970-01-01
  • 2015-03-19
  • 2023-03-09
  • 1970-01-01
  • 2014-09-15
  • 2016-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多