我的 Ruby 应用程序遇到了间歇性错误,我正在尝试找出原因。我正在 Apache 上运行 mod_passenger(如果重要的话,在 Dreamhost 上)。
我收到的错误是:
[ pid=12404 file=ext/apache2/Hooks.cpp:727 time=2012-04-30 02:59:02.949 ]:
Unexpected error in mod_passenger: Could not send data to the ApplicationPool server: write() failed: Bad file descriptor (9)
Backtrace:
in 'virtual boost::shared_ptr<Passenger::Application::Session> Passenger::ApplicationPoolServer::Client::get(const Passenger::PoolOptions&)' (ApplicationPoolServer.h:402)
in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:523)
(这就是我知道我正在运行 mod_passenger 的方式。)我尝试执行gem list | grep passenger
,但什么也没出现。我可以在 中看到模块/dh/apache2/template/lib/modules
,但我不知道如何确定版本。
答案1
启动 Apache 后,查看 Apache 错误日志。应该有一行如下内容:
[Sun Apr 29 06:57:07 2012] [notice] Apache/2.2.14 (Ubuntu) Phusion_Passenger/3.0.11 mod_ssl/2.2.14 OpenSSL/0.9.8k configured -- resuming normal operations
它所显示的内容取决于您的 Apache 安装,但它至少会告诉您正在运行哪个 Passenger 版本。如您所见,在我的情况下是 3.0.11。