我尝试通过capistrano在nginx和ubuntu上部署我的rails应用程序,就像页面https://gorails.com/deploy/ubuntu/14.04上的教程一样。 但最后我得到一条错误信息:
Incomplete response received from application
在我的浏览器中。 这可能是乘客的错误,但我怎么能弄明白该怎么办?
答案 0 :(得分:122)
您的rails_env制作没有必要的设置,可能缺少secret_key_base。
打开/etc/nginx/sites-available/default
并将rails_env更改为开发:
rails_env production;
to
rails_env development;
如果应用程序正在加载,则不是乘客问题。
生产解决方案:
rake secret
/yourapp/config/secrets.yml
secret_key_base
重新启动乘客应用程序:
touch /yourapp/tmp/restart.txt
答案 1 :(得分:24)
发生此错误是因为您没有设置secret_key_base。请按照以下步骤进行修复:
转到您的rails应用程序目录
cd /path/rails-app
生成密钥库
rake secret RAILS_ENV=production
设置环境变量
SECRET_KEY_BASE=<the-secret-key-base>
重新启动Rails应用
touch /path/rails-app/tmp/restart.txt
答案 2 :(得分:5)
对于使用乘客的人:
•导航到项目的根目录。
•运行bundle exec rake secret RAILS_ENV=production
•复制输出,然后运行sudo nano config/secrets.yml
•在production
下,将secret_key_base
的值替换为最近复制的佣金秘密。
•按CNTRL+X
,然后按y
,然后按enter
。
•运行passenger-config restart-app
并选择您要重新启动的应用。
https://www.phusionpassenger.com/library/admin/apache/restart_app.html
答案 3 :(得分:4)
周末我遇到了这个问题(事实证明我的乘客和红宝石版本之间存在不兼容性)。
但是,似乎没有人提及:实际错误可能会出现在/var/log/apache2/errors.log 中,而不是在任何自定义日志中。
一旦你知道了,希望你的搜索会更容易!
更新,因为我需要再次参考这个 - 这也适用于nginx - /var/log/nginx/error.log
在这种情况下是你的朋友!
答案 4 :(得分:3)
在我的情况下,这是因为我的服务器间歇性地耗尽了RAM(在PDF生成期间)。生成PDF后,某些RAM已恢复,错误将消失。
我有一台带有500M RAM的ubuntu服务器。
我added some swap space,这个错误消失了。
答案 5 :(得分:0)
可能我的答案不在话题,但是当我的数据库mysql
服务器没有运行时,我也遇到了这个错误。以防有人有同样的错误。
所以start/restart
您的数据库可能是另一个答案。
答案 6 :(得分:0)
这意味着您的rails应用程序在真正进入rails本身之前就已陷入困境。这可能是中间件中的一个例外,缺少ENV密钥,这在操作系统级别上是存在的。
尝试先在本地启动应用程序,然后执行操作以获取生产中的错误。如果一切正常,请检查所有日志。检查nginx日志,您的乘客日志,最后检查与启动和运行您的应用有关的所有其他特定于操作系统的日志。
答案 7 :(得分:0)
是否有像我这样的人在上传文件后出现此错误?
我的解决方案是检查文件名,其中可能包含一些特殊字符,例如`[(〜。
只需将其删除,然后再次上传文件即可。
祝你好运〜
答案 8 :(得分:0)
我仅在测试服务器上而不在生产环境中得到了此信息,因为我正在请求一个不存在的URL,并且我猜想在测试环境中,Rails会引发错误而不是返回404响应。