2016-04-17 11 views
0

に設定されている場合でも、私は、このコマンドを実行して、ローカル秘密鍵を生成した:は秘密のトークンがありません、それが環境変数

echo 'export SECRET_KEY_BASE=<locally_generated_secret_string>' >> ~/.bashrc 

rake secret 

はその後、私のUbuntu VPSに私はこのような環境変数を作成しました私はを入力すると

source ~/.bashrc 

は、その後、私はこれを実行することによって、私のbashrcをrealoadedていますこれは私にこの生成された文字列を出力します

次に私はcapistranoを介して自分のレールアプリをアップロードして起動しました。ただし、ログには次のエラーメッセージが表示されます。

#<RuntimeError: Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`> 

なぜこのようなことが起こりますか?

答えて

3

これはおそらく、アプリケーションをまだ設定していない場所があるためです。

あなたconfig/secrets.ymlファイルをチェックする場合は、secret_key_baseは次のように、developmenttestの両方のために設定されていることがわかります:productionため

development: 
    secret_key_base: *******... 

test: 
    secret_key_base: *******... 

しかし、そうでないかもしれないが。

あなたが次に行う必要があるのは、production環境の設定を追加することです。だから、secrets.ymlファイルには、あなたのようなものがあります:ENV["SECRET_KEY_BASE"]secret_key_baseを設定することにより

development: 
    secret_key_base: *******... 

test: 
    secret_key_base: *******... 

production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 
    secret_token: <%= ENV["SECRET_TOKEN"] %> 

を、あなたがお使いの環境にエクスポートした値を取得することができます、と同じことが、同様secret_tokenのために行きます。

これが役に立ちます。

関連する問題