異なる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 とアプリを再起動します。

関連情報