我使用Capistrano(暂存部署)将Rails 4应用程序(使用.rbenv)部署到运行Ngninx + Unicorn的远程Ubuntu服务器
E, [2015-08-10T16:53:29.822778 #24117] ERROR -- : app error: Missing `secret_token` and `secret_key_base` for 'staging' environment, set these values in `config/secrets.yml` (RuntimeError)
使用capistrano / upload-config,我在部署的当前版本中链接远程服务器上的secrets.yml文件
app/config/
secrets.staging.yml
secrets.yml -> /var/www/rails/delayMessage/shared/config/secrets.yml
和/var/www/rails/delayMessage/shared/config/secrets.yml文件包含
staging:
secret_key_base: 10c7ed6bccc6d3acb71...
为什么不考虑secret_key_base,为什么会出现这个错误并在unicorn.stderr.log中显示</ p>
更新1
在unicorn.rb中我有以下路径(应用和共享)设置...也许他们错了
#设置应用程序的完整路径。 app_dir = File.expand_path('../../', FILE ) shared_dir = File.expand_path('../../../ shared /', FILE )
答案 0 :(得分:0)
我有类似的情况,但是.rbenv不在我的名单上。我的解决方案实际上非常简单。 首先我停止了独角兽(不仅重启),我的意思是,真的用以下
来阻止它sudo service unicorn_myapp force-stop
并且还停止了Nginx:
sudo service nginx stop
然后运行:RAILS_ENV=environment rake secret
将值复制到staging
中的/deployed_app/shared/config/secrets.yml
部分,然后再次使用
sudo service unicorn_myapp start
sudo service nginx start
所有人再次回到正轨......
希望有所帮助