环境变量未加载
Environment variables not loading
我刚刚在 ec2 上设置了一个服务器并安装了所有需要的东西。
尝试使用
从 ec2 实例中应用程序的根目录启动我的 rails 应用程序
RAILS_ENV=production rails s
给我一个错误,表明我的环境变量没有加载
`validate_options':缺少必需的参数:aws_access_key_id、aws_secret_access_key(ArgumentError)
我的 ~/.bashrc 里有这个
export S3_KEY="XXXXXXXXXXX"
export S3_SECRET="XXXXXXXXX"
export S3_REGION="XXXXX"
export S3_BUCKET="XXXXX"
正在做source ~/.bashrc
使 RAILS_ENV=production rails s
命令起作用
我可以 curl localhost:3000
查看我的主页 html
通过 ssh 进入服务器后,所有命令都已 运行 在服务器上。
这些环境变量不是应该在我用ssh连接服务器的时候自动加载吗?
我的假设是否正确,因为除非我手动 source ~/.bashrc
,否则它们似乎不会加载,我的 Web 服务器也将无法访问它们吗?
如果您找不到让它工作的方法,我建议您使用 dotenv。配置非常简单。
在您的 gemfile 中:
gem 'dotenv-rails', :groups => [:development, :test]
在database.yml中:
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASS'] %>
etc ...
然后您只需在主文件夹中使用您的配置创建一个名为 .env 的文件:
DB_USER = XXXX
DB_PASS = XXXX
etc ...
application.rb.
中还可以添加一些可选的内容
完整文档:
https://github.com/bkeepers/dotenv
有用的文章:
http://blog.honeybadger.io/ruby-guide-environment-variables/
想通了。
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
由于某种原因,此新设置的服务器上的 ~/.profile
中缺少此位。通常这是默认设置。
这导致我的 ~/.bashrc
根本无法加载。
我刚刚在 ec2 上设置了一个服务器并安装了所有需要的东西。 尝试使用
从 ec2 实例中应用程序的根目录启动我的 rails 应用程序RAILS_ENV=production rails s
给我一个错误,表明我的环境变量没有加载
`validate_options':缺少必需的参数:aws_access_key_id、aws_secret_access_key(ArgumentError)
我的 ~/.bashrc 里有这个
export S3_KEY="XXXXXXXXXXX"
export S3_SECRET="XXXXXXXXX"
export S3_REGION="XXXXX"
export S3_BUCKET="XXXXX"
正在做source ~/.bashrc
使 RAILS_ENV=production rails s
命令起作用
我可以 curl localhost:3000
查看我的主页 html
通过 ssh 进入服务器后,所有命令都已 运行 在服务器上。
这些环境变量不是应该在我用ssh连接服务器的时候自动加载吗?
我的假设是否正确,因为除非我手动 source ~/.bashrc
,否则它们似乎不会加载,我的 Web 服务器也将无法访问它们吗?
如果您找不到让它工作的方法,我建议您使用 dotenv。配置非常简单。
在您的 gemfile 中:
gem 'dotenv-rails', :groups => [:development, :test]
在database.yml中:
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASS'] %>
etc ...
然后您只需在主文件夹中使用您的配置创建一个名为 .env 的文件:
DB_USER = XXXX
DB_PASS = XXXX
etc ...
application.rb.
中还可以添加一些可选的内容完整文档: https://github.com/bkeepers/dotenv
有用的文章: http://blog.honeybadger.io/ruby-guide-environment-variables/
想通了。
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
由于某种原因,此新设置的服务器上的 ~/.profile
中缺少此位。通常这是默认设置。
这导致我的 ~/.bashrc
根本无法加载。