Ruby on rails 3.2 Rails应用程序仅在通过Unicorn运行时出错

Ruby on rails 3.2 Rails应用程序仅在通过Unicorn运行时出错,ruby-on-rails-3.2,unicorn,Ruby On Rails 3.2,Unicorn,不幸的是,我不得不配置一台机器来运行多个Rails应用程序。最初,机器由Nginx、rvm和乘客安装。要配置多个独立的乘客似乎很痛苦,而且感觉像是黑客攻击。我只是希望这个应用程序能够启动并运行,所以我现在将使用Unicorn通过一个不同的端口(8080)来运行它。我有什么?没有经验 我的应用程序有一个小助手,它检查站点是否被移动设备访问,然后提供一组不同的视图。这个助手只有一个小的语句作为调试行放入其中 当在Unicorn中运行时,会将线条条与以下内容放在一起: Errno::EIO (Inpu

不幸的是,我不得不配置一台机器来运行多个Rails应用程序。最初,机器由Nginx、rvm和乘客安装。要配置多个独立的乘客似乎很痛苦,而且感觉像是黑客攻击。我只是希望这个应用程序能够启动并运行,所以我现在将使用Unicorn通过一个不同的端口(8080)来运行它。我有什么?没有经验

我的应用程序有一个小助手,它检查站点是否被移动设备访问,然后提供一组不同的视图。这个助手只有一个小的
语句作为调试行放入其中

当在Unicorn中运行时,
会将
线条条与以下内容放在一起:

Errno::EIO (Input/output error - <STDOUT>):
Errno::EIO(输入/输出错误-):

我所能想到的就是它无法向STDOUT写信。我以前从未见过Rails应用程序在
put
行中被替换。当然,它可能应该使用记录器,但当Unicorn中的这一行在其他地方没有此问题时,Unicorn中的这一行有什么问题。

您的配置/Unicorn.rb中必须有
stderr\u path
行。并且该文件必须可由unicorn进程写入

EIO错误指示进程正在尝试写入TTY,但TTY现在已不存在。您可能从终端启动Unicorn,让它守护,然后退出终端。设置stderr\u路径很有帮助,因为它将stderr(也可能是stdout?)重定向到一个文件

但对于Phusion乘客:您不必再设置多个独立乘客。由于Phusion乘客4,它支持多个红宝石