【发布时间】:2016-03-29 20:07:51
【问题描述】:
当我在.profile 和.bashrc 中放置秘密令牌导出命令时,SECRET_KEY_BASE 在生产中丢失错误
我的导出命令是这样的:
export SECRET_KEY_BASE=21021dd33712b563e*******************
在 pumma 访问日志中显示此错误
2015-12-23 06:32:28 -0500: Rack app error: #<RuntimeError: Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`>
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/railties- 4.2.5/lib/rails/application.rb:534:in `validate_secret_key_config!'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application.rb:246:in `env_config'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/engine.rb:514:in `call'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application.rb:165:in `call'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/puma-2.15.3/lib/puma/configuration.rb:79:in `call'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/puma-2.15.3/lib/puma/server.rb:541:in `handle_request'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/puma-2.15.3/lib/puma/server.rb:388:in `process_client'
/home/deploy/apps/pulsemedia/shared/bundle/ruby/2.2.0/gems/puma-2.15.3/lib/puma/server.rb:270:in `block in run'
这是我的 secrets.yml 文件
production:
secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>
我在 Rails 控制台生产中尝试ENV['SECRET_KEY_BASE'],它向我显示了那里的密钥,但我不知道发生了什么。
注意:我使用的是 rails 4.2.1
【问题讨论】:
-
您确定您的 puma 进程与您的环境变量在同一帐户下运行吗?另外......您可能会发现您的 puma 进程不会触发您的
.profile或.bashrc文件的执行。 -
是的,我也手动运行了这些命令,但什么也没发生。
-
您在生产中使用什么网络服务器(独角兽/乘客等)?它可能会丢失自定义环境变量。
标签: ruby-on-rails production puma secret-key