如何为不同的 Web 应用程序使用不同的 Ruby?Redmine 错误

如何为不同的 Web 应用程序使用不同的 Ruby?Redmine 错误

我正在尝试在我的服务器上安装新版本的 redmine。目前我有 redmine 1.3.2,并且安装了 2.4.3

但是乘客无法打开我的应用程序,并且出现此错误: Redmine 错误

我意外安装了不同的 ruby​​。但我不想改变它,因为其他应用程序正在使用 ruby​​,我不想搞砸任何事情。

现在我的 RVM 说我使用的 ruby​​ 是版本 2.0.0 (使用RVM LIST)

如果我追求的which -a ruby输出是这样的:

/home/me/.rvm/rubies/ruby-2.0.0-p247/bin/ruby
/home/me/.rvm/bin/ruby
/usr/bin/ruby

所以我尝试运行我 apache2 中定义的不同 ruby​​。使用来自 Passenger 的官方指南。但是当我在 apache 中输入以下行时:

PassengerRuby /path/to/my/ruby

我收到错误“PassengerRuby 不允许在此处设置”

我该如何在新版 redmine 中使用 ruby​​ 2.0.0?它现在指向 1.8 版本,如提供的屏幕截图所示

答案1

我遇到了类似的问题(虽然不是使用 redmine,而是在 CentOS 6 上)。我想在我的生产服务器上为我的应用程序切换到使用 ruby​​ 2.3.0。以下是我采取的一些步骤:

安装 ruby​​ 2.3.0:

rvm install 2.3.0

将其设置为默认值。注意:以 root/管理员身份运行。

rvm use --default 2.3.0

安装最新的乘客:

gem install passenger

安装了乘客 apache2 模块:

pasenger-install-apache2-module

模块安装脚本提供了放入 Apache 配置的代码,对我来说看起来像这样:

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.29/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.29
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.0/wrappers/ruby
</IfModule>

我将其放在我的 /etc/httpd/conf.d/passenger.conf 文件中,但也可以将其放在特定应用程序的 apache 配置文件中。pasenger-install-apache2-module 安装脚本实际上会在您编辑配置文件后对其进行检查,并通知您是否发现任何问题。

然后重新启动 apache 以及您的应用程序。

相关内容