来自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:

  1. input你的应用程序的根
  2. 运行: rake secret
  3. 复制输出
  4. /yourapp/config/secrets.yml
  5. 设置生产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数据库可能是另一个答案。