【发布时间】:2018-05-30 11:34:11
【问题描述】:
所以在 Ubuntu 服务器上,我在日志中得到了这个:
#<RuntimeError: Missing `secret_key_base` for 'production'
environment, set this value in `config/secrets.yml`>
/home/deploy/apps/project/shared/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/application.rb:510:in `validate_secret_key_config!'
/home/deploy/apps/project/shared/bundle/ruby/2.4.0/gems/railties-5.1.4/lib/rails/application.rb:247:in `env_config'```
我的浏览器:
An unhandled lowlevel error occurred. The application logs may have details.
我的 secrets.yml(在 deploy/apps/project/current/config 和 deploy/apps/project/shared/config 中):
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
部署.rb
...
namespace :deploy do
desc 'Rails Secrets'
task :secret do
on roles(:app) do
execute "export SECRET_KEY_BASE=`bundle exec rake secret`"
end
end
before :finishing, :secret
...
end
我也尝试在/etc/profile 中手动添加SECRET_KEY_BASE。当我输入这个命令时它存在:printenv(因为我手动添加了它),但是当注销root时它不再存在于printenv中。
printenv 命令中不存在 ENV 变量。在我进行部署后 (cap production deploy:initial)。
如何解决此错误?
【问题讨论】:
-
您是否已将其添加到
/etc/profile作为root用户?如果不是,您必须将export SECRET_KEY_BASE=<YOUR_SUPER_SECRET>添加到您的~/.bash_profile(或您使用的任何配置文件)。也许这个要点会对你有所帮助 - gist.github.com/pablosalgadom/4d75f30517edc6230a67 .
标签: ruby-on-rails digital-ocean ubuntu-server rvm-capistrano