2010-06-25 28 views
0

我在Windows上使用VirtualBox來運行一個Ubuntu OS,它運行的是包含ruby 1.8,rails 2.3.8和passenger 2.2.5的turnkey rails包。當我第一次啓動它只是一個香草Rails應用程序它工作得很好,但現在我發現了以下錯誤:爲什麼我的導軌沒有安裝使用最新版本的乘客?

未初始化的常量PhusionPassenger :: utils的:: PseudoIO :: StringIO的

我GOOGLE了這一點,並在phusion/google小組上表示這是一箇舊錯誤,並且升級了乘客,我使用寶石升級乘客。它表示正在安裝乘客2.2.15,但它似乎沒有使用它。我重新啓動了整個virtualbox,它仍然給我同樣的錯誤,回溯顯示乘客2.2.5。

我意識到這裏有好幾層,有很多地方出了問題,另外,我幾乎是一個Linux新手。我有一些使用rails的經驗。我會很感激任何幫助。

回答

1

它可能是你的Apache配置文件。 Passenger安裝時,會向/etc/apache2/http.conf文件添加一些代碼,以便Apache加載Passenger擴展。該代碼包含版本號,因此如果您更改了Apache的版本,則需要修改此文件。你要找的這個樣子的

LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so 
PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.15 
PassengerRuby /opt/local/bin/ruby 

代碼,就必須進行身份驗證編輯文件,打開一個終端窗口,然後輸入

sudo gedit /etc/apache2/http.conf 

,並輸入您的密碼來編輯文件。一旦你做出更改關閉gedit然後運行

sudo /etc/init.d/apache2 restart 

要重新啓動Apache並再次嘗試您的Rails應用程序。

+0

是的,這是答案,雖然在我的情況下它更深一層:在http.conf中有一個包含導致另一個目錄或文件的乘客,在那個文件中我找到了上面列出的行 – user26270 2010-06-28 17:38:41

0

使用

gem list 

,以確保安裝了新版本的嘗試。乘客寶石旁邊應該看到多於所列的版本。

您可以使用

gem clean 

刪除舊版本。

+0

謝謝,這顯然工作清理舊版本,但有不幸的副作用hoses我的導軌安裝;我甚至無法用基本的'Your on Rails'頁面來回應它;我正在檢查日誌;還有其他老的寶石也被卸載了,也許這就是問題 – user26270 2010-06-25 14:58:04

+0

如果它損壞了設置,也許全新安裝會更好。 RVM,Ruby 1.9,Rails 3 beta(現在非常穩定)。 RVM使管理Ruby在Linux上的安裝變得簡單。 – Jarrod 2010-06-25 15:55:30

相關問題