読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

secret_key_baseがないとかなんとか

rails4.1.4でproduction環境にアプリをおいたらこんなエラーが出た

2014-11-17 01:14:04 +0900: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/application.rb:452:in `validate_secret_key_config!'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/application.rb:195:in `env_config'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/engine.rb:510:in `call'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.4/lib/rails/application.rb:144:in `call'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/configuration.rb:71:in `call'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/server.rb:490:in `handle_request'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/server.rb:361:in `process_client'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/server.rb:254:in `block in run'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/thread_pool.rb:92:in `call'
/usr/local/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/puma-2.9.2/lib/puma/thread_pool.rb:92:in `block in spawn_thread'

config/secret.ymlの値がないとかなんとかで騒いでる。 devとtestは適当な値がそのymlファイルに書かれてたけど、productionはENV(環境変数)から渡す方式になっていた。

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

なのでこの場合は以下のコマンドで環境変数をいれてからアプリサーバーを再起動する。 (pumaの場合pumactlからのrestartじゃダメでstop => startする必要があった)

export SECRET_KEY_BASE=`bundle exec rake secret`

ただ、これをcapistrano経由で設定する時はどうしたらいいのかは分からない。 capistrano経由でENV設定する方法もわからないし、いちいちrake secretするのもどうよと思う。 とりあえずは/etc/profile.d/のなかで設定するかdotenvってgem使うかのどっちか7日と思う。