我的堆栈跟踪在哪里?
我有一个小型 Rails 3.2 应用程序,我正尝试让它在 unicorn 代理下运行,该代理连接到 Linode 服务器上的 Apache vhost。在本地开发模式下,以及在 linode 上,它按预期运行。但是,一旦我打开开关-E production
,浏览器中就会出现错误“很抱歉,但出了点问题。”
因此,我当然会尝试查看日志以查看问题所在。但应用程序log
目录中没有任何内容。也没有任何有用的信息/var/log/apache2
。
因此,我尝试将情况简化到其本质,但直接运行和访问unicorn_rails
也会出现同样的问题。唯一的输出应该是 stdout/stderr,那里也没有显示任何内容。
$ bundle exec unicorn -E production -p 9092
I, [2012-03-10T15:02:50.208750 #2891] INFO -- : listening on addr=0.0.0.0:9092 fd=7
I, [2012-03-10T15:02:50.211113 #2891] INFO -- : worker=0 spawning...
I, [2012-03-10T15:02:50.224912 #2891] INFO -- : master process ready
I, [2012-03-10T15:02:50.225570 #2908] INFO -- : worker=0 spawned pid=2908
I, [2012-03-10T15:02:50.225900 #2908] INFO -- : Refreshing Gem list
I, [2012-03-10T15:03:00.725142 #2908] INFO -- : worker=0 ready
cache: [GET /] miss
cache: [GET /favicon.ico] miss
正如我所说,如果我切换到开发模式,它就可以正常工作。无论我以 root 还是普通用户身份运行上述程序都没有关系。
我正在使用 RVM,所以这可能是一个问题,但 unicorn 确实在开发中运行 - 并且所有必需的 gem 都已安装。
使用-d
unicorn 的调试标志,我在生产或开发模式下收到大量与某些 gem 相关的警告和异常。我在调试输出中没有看到任何有趣的东西,但如果有帮助的话,我可以发布它。