0

私はec2にサーバーをセットアップし、必要なものすべてをインストールしました。欠落必要な引数: は環境変数がロードされていません

RAILS_ENV=production rails s 

を使用してEC2インスタンスにおけるアプリケーションのルートディレクトリから私のレールのアプリを起動しようとすると、私に私の環境変数が

`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 ~/.bashrcRAILS_ENV=production rails sコマンド作業 を行い、私はcurl localhost:3000

すべてのコマンドがそれにsshが-INGの後に、サーバー上で実行されている私のホームページのHTML見ることができます。

sshを使用してサーバーに接続するときに、これらの環境変数を自動的にロードしないでください。 私は手動でsource ~/.bashrcをロードしないとロードされていないと思われるので、私のWebサーバーはそれらのいずれにもアクセスできません。

答えて

0

はそれを考え出しました。

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

何らかの理由でこの新しく設定されたサーバーの~/.profileにこのビットがありませんでした。通常これはデフォルトで存在します。

これは私の~/.bashrcがまったく読み込まれない原因となりました。

0

これを機能させる方法が見つからない場合は、dotenvを使用することをお勧めします。設定が非常に簡単です。 database.ymlので

gem 'dotenv-rails', :groups => [:development, :test] 

DB_USER = XXXX 
DB_PASS = XXXX 
etc ... 

username: <%= ENV['DB_USER'] %> 
password: <%= ENV['DB_PASS'] %> 
etc ... 

は次に、あなただけのメインフォルダに設定して.envという名前のファイルを作成し、あなたのgemfileで

application.rbに追加するオプションもあります。

完全なドキュメント: https://github.com/bkeepers/dotenv

便利な記事: http://blog.honeybadger.io/ruby-guide-environment-variables/

関連する問題