gpt4 book ai didi

ruby - 乘客:内部服务器错误

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:36 27 4
gpt4 key购买 nike

我安装了 Apache、Passenger 和 Sinatra,并部署了一个应用程序。尝试访问时出错:

An error occurred while starting up the preloader: it did not write a startup response in time.

Application root
/var/www/html/test
Environment (value of RAILS_ENV, RACK_ENV, WSGI_ENV and PASSENGER_ENV)
production
Ruby interpreter command

/usr/local/bin/ruby

User and groups

Unknown

Environment variables

Unknown

Ulimits

Unknown

我该如何解决?


编辑

在应用程序日志中,我发现了这一行错误:

!> Ready
!> socket: unix:/tmp/passenger.1.0.14019/generation-0/backends/preloader.14049
!>

gem 列表:

bigdecimal (1.2.0)
builder (3.2.0)
bundler (1.3.1)
daemon_controller (1.1.1)
fastthread (1.0.7)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
passenger (4.0.0.rc4)
psych (2.0.0)
rack (1.5.2)
rack-protection (1.4.0)
rake (0.9.6)
rdoc (4.0.0)
sequel (3.45.0)
sinatra (1.3.5)
test-unit (2.0.0.0)
tilt (1.3.4)

系统版本:

Ruby 2.0
Apache 2.2
Amazon EC2 Instance

该应用程序在 Ruby 1.9 和 Passenger 3.0 上运行良好。我刚升级到 2.0,而 Passenger 3.0 甚至无法正确编译。他们建议我使用 Passenger Pre 4.0,编译正常,但无法运行该应用程序...

最佳答案

我找到了我的问题的答案。在我的 config.ru 中,我像这样重定向 STDOUT:

log = File.new("logs/std.log", "a+")
STDOUT.reopen(log)

删除重定向到日志中,它再次启动。

看起来 passenger 需要 STDOUT 来检测工作中的“预加载器”。


编辑:我目前正在使用以下解决方案将日志重定向到一个文件中并让乘客满意(基本上只是将 stdout 复制到日志文件中而不是重定向):

log = File.new("logs/std.log", "a+")
def STDOUT.write string
log.write string
super
end
STDOUT.sync = true

关于ruby - 乘客:内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328326/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com