1

当我们(最终)从 Ruby 1.8.7 移植我们的应用程序时,我正在尝试使用 RVM 设置 Phusion Passenger 和 Apache,以使用 Ruby 1.87/Rails 2.3.x 和 Ruby 1.9.3/Rails 3.2 为应用程序提供服务。 X。这一切都在我的开发机器上;在生产中,我们使用单独的虚拟机来服务两个不同的平台——但不用说,这在开发中会很不方便。

优点:我已经使用 Ruby 1.8.7(和 RVM)安装了 Passenger 3.0.7,并且 1.8.7/Rails 2.3.x 应用程序和过去一样运行良好(与我过去的设置相比,唯​​一改变的是通过 RVM (重新)安装了乘客)。

坏处:我还使用 Ruby 1.9.3(和 RVM)将 Passenger 4.0.20 作为 gem 安装,如果我将 Apache 配置为使用它们,它就能够提供 1.9.3/Rails 3.2.x 应用程序美好的。但是Passenger 不能为Ruby 1.8.7/Rails 2.3.x 应用提供服务。

此处的另一位开发人员具有基本相同的设置工作,但我们无法看到她的安装和我的安装之间有任何明显差异。但她的成功告诉我这是可能的。

丑陋的:当我尝试使用 Passenger 4.0.20 运行 1.8.7/2.3.x 应用程序时,Passenger 将一堆输出记录到 Apache error.log,包括以下几行:

[ 2013-10-22 13:12:30.1770 21240/7fe89ad0e700 Pool2/SmartSpawner.h:301 ]: Preloader for /home/username/workspace/app started on PID 21284, listening on unix:/tmp/passenger.1.0.21232/generation-0/backends/preloader.21284
[ 2013-10-22 13:12:30.2547 21240/7fe89ac8c700 Pool2/Implementation.cpp:1274 ]: [App 21284 stderr] [ 2013-10-22 13:12:30.2547 21385/0x7f9bf1fd0b80(Worker 1) request_handler/thread_handler.rb:197 ]: *** Passenger RequestHandler warning: someone tried to connect with an invalid connect password.

最后一点(向右滚动!)似乎是最奇怪的。

一些在线搜索显示,Passenger 支持某种“连接密码”,但我们没有使用这种东西。在乘客源代码之外,很少有与乘客相关的提及“有人尝试使用无效的连接密码进行连接”。

我实际上已经解决了这个问题,但由于网络上缺乏参考资料,而且我没有在 SO 上找到任何提及“无效连接密码”错误的内容,我发布此内容是为了帮助下一个人。我没有包含很多其他日志片段、配置文件内容等,因为我已经提到了所有相关信息。

如果您认为自己知道答案,那么您就有机会获得更多“声誉”。否则,我会在几天后发布我的答案。

4

2 回答 2

0

Phusion 乘客作者在这里。连接密码是 Phusion Passenger 中的一种安全机制,用于防止本地系统上的未授权进程连接到衍生的应用程序进程。连接密码只有 HelperAgent、应用程序进程和管理工具(如乘客状态)知道。

我不确定你的情况出了什么问题。我想更深入地分析你的问题。可以将PassengerLogLevel 设置为3,触发问题,并将您的Apache 错误日志文件的内容发布到社区讨论论坛吗?

于 2013-10-23T10:42:33.350 回答
0

我在乘客论坛上的一句评论中找到了我的答案。

引用我的问题,这是真正的问题:“我还使用 Ruby 1.9.3(和 RVM)将Passenger 4.0.20 作为gem 安装......”

我能够通过使用 Ruby 1.8.7(和 RVM)将 Passenger 4.0.20 作为 gem 重新安装来解决它。通过这种配置,Passenger 能够同时为 Ruby 1.8.7 和 Ruby 1.9.3 应用程序提供服务。

我读过除了它的主要本地代码外,Passenger 在内部使用了一些 Ruby,由它安装的任何版本的 Ruby 解释。显然(并且奇妙地)这段 Ruby 代码与 1.8.7 之前的 Ruby 兼容。同样美妙的是,它将使用它们的PassengerRuby指令指定的任何 Ruby 为应用程序提供服务……但显然,如果使用比应用程序所需的更新的 Ruby 安装Passenger,则情况并非如此。

非常感谢Passenger 和RVM 团队,也感谢Maximilian Herold 解开了我的谜团。

于 2013-10-23T22:24:09.910 回答