Ruby应用程序仅在Passenger“禁用”时才有效

我已经使用Apache和Passenger在ubuntu服务器上部署了Sinatra应用程序.通过一些试验和错误,我意识到应用程序仅在乘客模块被禁用时才有效.

$a2dismod passenger

Apache重启后,应用程序按预期运行.

如果我重新启用模块……

$a2enmod passenger

…我在Apache重新启动时看到此警告:

[warn] module passenger_module is already loaded,skipping

并且应用程序停止工作. Apache响应,提供vhost文档根目录的内容,但Passenger无法识别.

我很高兴我的应用程序有效,但我不确定如何解释启用/禁用乘客模块的相反效果.

解决方法

我遇到了同样的问题:如果您按照这个版本的Apache关注乘客安装说明,您实际上可能会告诉Apache加载乘客两次.

在将3个着名行添加到Apache配置文件之前:

LoadModule passenger_module /usr/…/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby

检查配置文件apache2.conf中是否有以下行:

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

如果这些行确实存在,则意味着在启动时,您的Apache服务器将包含/ mods中的每个* .conf和* .load文件 – 可用于/ mods-enabled,而不是加载它们.

因此,如果您在相关警告消息中运行,则表示您正在装载乘客模块两次!

您可以利用这个Apache功能转到/ mods-available,查找passenger.conf和passenger.load文件并编辑它们而不是apache2.conf.

‘LoadModule passenger_module’行进入passenger.load,而另外2’PassengerRoot’和’PassengerRuby’行进入passenger.conf.

然后重新启动服务器,你会没事的.

有关此问题的更多信息,请访问:http://www.duccioarmenise.net/ruby-on-rails/warn-module-passenger_module-is-already-loaded/

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...