来自nginx / passenger的“应用程序收到的不完整回复”
我试图通过capistrano在nginx和ubuntu上部署我的rails应用程序,如https://gorails.com/deploy/ubuntu/14.04页面上的教程。 但最后我得到一个错误消息:
Incomplete response received from application
在我的浏览器。 这可能是乘客的错误,但我怎么能找出该怎么办?
您的rails_env制作没有必要的设置,可能缺lesssecret_key_base。
打开/etc/nginx/sites-available/default
并将rails_env更改为开发:
rails_env production; to rails_env development;
如果应用程序正在加载它不是一个乘客的问题。
生产scheme:
- input你的应用程序的根
- 运行:
rake secret
- 复制输出
- 去
/yourapp/config/secrets.yml
- 设置生产
secret_key_base
重新启动乘客应用程序:
touch /yourapp/tmp/restart.txt
发生此错误是因为您没有设置secret_key_base。 按照以下步骤来解决它:
去你的rails应用程序目录
cd /path/rails-app
生成密钥库
rake secret RAILS_ENV=production
设置环境variables
SECRET_KEY_BASE=<the-secret-key-base>
重新启动Rails应用程序
touch /path/rails-app/tmp/restart.txt
对于那些使用乘客:
•导航到您的项目的根目录。
•运行bundle exec rake secret RAILS_ENV=production
复制输出,然后运行sudo nano config/secrets.yml
•正在production
,将secret_key_base
的值replace为最近复制的rake secret。
•按CNTRL+X
,然后按y
,然后按enter
。
•运行passenger-config restart-app
并select你想重新启动的应用程序。
https://www.phusionpassenger.com/library/admin/apache/restart_app.html
可能是我的答案是closures的话题,但是当我的数据库的mysql
服务器没有运行,我也有这个错误。 以防万一有人有同样的错误。
所以start/restart
数据库可能是另一个答案。