VPS apache 配置 - 添加最新的乘客 gem 后命令“PassengerDefaultRuby"无效 [英] VPS apache config - Invalid command 'PassengerDefaultRuby' after adding latest passenger gem

查看:21
本文介绍了VPS apache 配置 - 添加最新的乘客 gem 后命令“PassengerDefaultRuby"无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

曾经在我的 vps 中有这个红宝石列表:

used to have this list of rubies in my vps:

   ruby-1.9.2-p320 [ i686 ]
=* ruby-1.9.3-p194 [ i686 ]
   ruby-1.9.3-p374 [ i686 ]
   ruby-1.9.3-p392 [ i686 ]

今天我在 ruby 2.0 上的这个 vps 上安装了一个新应用,所以我在 rvm 中添加了 2.0:

today I installed a new app on this vps on ruby 2.0, so I added 2.0 to rvm:

   ruby-1.9.2-p320 [ i686 ]
   ruby-1.9.3-p194 [ i686 ]
   ruby-1.9.3-p374 [ i686 ]
   ruby-1.9.3-p392 [ i686 ]
=* ruby-2.0.0-p247 [ i686 ]

安装了 passengerpassenger-apache-module,说明说要添加这些行:

installed passenger and passenger-apache-module, instructions says to add these lines:

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

/etc/apache2/apache2.conf 并重启apache,重启后我得到这个错误:

to /etc/apache2/apache2.conf and restart apache, after restart I got this error:

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!

还有一个问题,当我在 http://nccm.md 我得到了:

and one more problem, when I open my app at http://nccm.md I got:

Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)

gem list 命令我可以看到这个 gem 安装在 ruby​​ 2.0 环境中,但应用程序在 usr/local/rvm/gems/ruby-1.9.3- 中查找它p194@global.这是为什么?感谢您的帮助.

from gem list command I can see this gem is installed in ruby 2.0 environment, but the app looks for it in usr/local/rvm/gems/ruby-1.9.3-p194@global. Why is that? Thank you for any help.

推荐答案

知道了!

您需要在根级别分配一个默认的 ruby​​,其他的您将在 sites-enabled 配置文件中设置.例如,在我的 apache2.conf 文件中:

you need to have a default ruby assigned at root level, the other ones you'll set in sites-enabled configuration files. For example, in my apache2.conf file:

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

然后在 /etc/apache2/sites-enabled/mysite 中启动应该在 ruby-1.9.3 中运行的应用程序,我将添加 乘客Ruby/usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby:

then in /etc/apache2/sites-enabled/mysite that fires up the app that should work in ruby-1.9.3 I'll add PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby:

<VirtualHost xxx.xx.xx.xx:80>
  PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
  ServerName mysite.md
  DocumentRoot /home/apps/myapp/public
  <Directory /home/apps/myapp>
     AllowOverride None
     Options -MultiViews
  </Directory>
</VirtualHost>

对于使用 ruby-2.0 的应用程序,无需添加 PassengerRuby 选项,因为 ruby-2.0 现在是默认选项.

for the app that works with ruby-2.0 no need to add PassengerRuby option as ruby-2.0 is the default one now.

此外,如果您在 apache2.config 文件中加载了其他 rvm 乘客模块,就像我的情况一样:

Also if you have other rvm passenger modules loaded in apache2.config file, like in my case I had:

#   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
#   PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.18
#   PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

您需要像我一样删除它们或对其进行评论,因为您将在 /etc/apache2/sites-enabled/mysite 配置文件中加载 ruby​​ 版本.

you'll need to remove them or comment them as I did, as you'll load the ruby version in /etc/apache2/sites-enabled/mysite config file.

注意!

这仅适用于乘客 > 4.0.0.我已经对此进行了测试乘客 3.0.8 并且它不起作用.请注意,PassengerDefaultRuby在乘客版本 4.0.0 中引入,请参阅modrails.com/documentation/....

This will only work on passenger > 4.0.0. I have tested this on passenger-3.0.8 and it does not work. Note that PassengerDefaultRuby was introduced in passenger version 4.0.0, see modrails.com/documentation/….

这篇关于VPS apache 配置 - 添加最新的乘客 gem 后命令“PassengerDefaultRuby"无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆