如何為不同的 Web 應用程式使用不同的 Ruby? Redmine錯誤

如何為不同的 Web 應用程式使用不同的 Ruby? Redmine錯誤

我正在嘗試在我的伺服器上安裝新版本的 redmine。現在我有 redmine 1.3.2 並安裝了 2.4.3

但乘客無法打開我的應用程序,我收到此錯誤: Redmine錯誤

我偶然安裝了不同的紅寶石。但我不想改變它,因為其他應用程式正在使用 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​​。使用乘客的官方指南。但是當我將這一行放入我的 apache 時:

PassengerRuby /path/to/my/ruby

我收到錯誤“不允許在此處設定 PassengerRuby”

如何將我的 ruby​​ 2.0.0 用於新的 redmine?現在它指向 1.8 版本,如提供的螢幕截圖所示

答案1

我遇到了類似的問題(儘管不是在 redmine 上,而是在 CentOS 6 上)。我想在我的應用程式的生產伺服器上改用 ruby​​ 2.3.0。以下是我採取的一些步驟:

安裝紅寶石2.3.0:

rvm install 2.3.0

將其設為預設值。注意:以 root/管理員身分執行。

rvm use --default 2.3.0

安裝了最新的乘客:

gem install passenger

安裝了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 以及您的應用程式。

相關內容