我最近部署了一个应用程序,由于缺少生产secret_key_base而出现内部服务器错误。经过数小时的测试,我设法通过两种方法解决了这个问题:
方法1:
我使用生成了一个新的secret_key,rake secret
并将其替换为<%= ENV["SECRET_KEY_BASE"] %>
in secrets.yml
。再次部署了该应用程序,这次可以正常工作了。但是我认为这种方法是错误的。
方法2:
我使用生成了一个新的secret_key,rake secret
并将其添加到environments/production.rb
like中config.secret_key_base = 'd1f4810e662acf46a33960e3aa5bd0************************
,而没有更改secrets.yml
(默认值为production: <%= ENV["SECRET_KEY_BASE"] %>
)。再次部署该应用程序,它可以正常工作。
我的问题:
我终于找到了科伦特方法。有问题的方法都不是正确的方法。
正确的方法:
我们自己应该生成一个秘密密钥(by rake secret
),然后通过在命令提示符下运行以下命令来为SECRET_KEY_BASE创建一个环境变量:
rhc set-env SECRET_KEY_BASE=3dc8b0885b3043c0e38aa2e1dc64******************** -a myapp
运行此命令后,通过SSH连接到服务器并运行,env
因此您应该在列表中看到SECRET_KEY_BASE。
现在重新启动您的应用程序rhc app-stop myapp
和rhc app-start myapp
,然后就可以了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句