无效的命令'PassengerDefaultRuby'

时间:2013-11-20 15:06:04

标签: ruby-on-rails ruby ruby-on-rails-3 apache2 passenger

我正在使用以下版本

Phusion Passenger version 4.0.25

ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]

Server version: Apache/2.2.22 (Ubuntu)
Server built:   Jul 12 2013 13:38:21

我按照apache.conf中的乘客指示粘贴这三行

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.25/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.25
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby

以下是我安装的ruby的详细信息

rvm rubies

   ruby-1.9.3-p448 [ i686 ]
=* ruby-2.0.0-p247 [ i686 ]

如果我重新启动Apache,我会收到错误。

[Wed Nov 20 15:04:13 2013] [warn] module passenger_module is already loaded, skipping
Syntax error on line 242 of /etc/apache2/apache2.conf:
Invalid command 'PassengerDefaultRuby', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!

我完成了很多谷歌搜索,但发现only one link没有多大帮助。

2 个答案:

答案 0 :(得分:5)

我在Ubuntu 10.04服务器上遇到了同样的问题。就我而言,就像洪力说的那样,我装了两个乘客版本。一个是来自Ubuntu存储库的libapache2-mod-passenger包,另一个是使用RVM安装的。为了使它与通过RVM安装的一个一起工作,我通过运行

来卸载加载了ubuntu包的模块
  

a2dismod乘客

然后重新加载apache。

答案 1 :(得分:2)

您可能在Apache中加载了两个Phusion Passenger版本,一个旧版本和一个较新版本。他们彼此冲突。您需要卸载可以找到的所有Passenger痕迹,然后只安装最新版本。