我試圖部署一個Rails應用程序(它在開發中工作正常)到生產服務器上。我已經安裝並配置了Apache,Passenger和必要的gem。我重新啓動Apache並導航到服務器後,我得到以下錯誤:Rails/Passenger:沒有這樣的文件加載 - 錢(MissingSourceFile)
Exception PhusionPassenger::UnknownError in PhusionPassenger::Railz::ApplicationSpawner (no such file to load -- money (MissingSourceFile))
gem list money
顯示:
*** LOCAL GEMS ***
money (3.0.5)
在服務器上的irb
會議:
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'money'
=> true
創業板要求在config/environment.rb
:
require 'money'
這是怎麼回事?
編輯:寶石被安裝爲根:
# ls -l /usr/lib/ruby/gems/1.8/gems/money-3.0.5/lib
total 8
drwx------ 2 root root 4096 Sep 2 10:26 money
-rw-r--r-- 1 root root 1284 Sep 2 10:26 money.rb
編輯2:具有帶路障沒有成功後,我意識到,乘客是那種上作出了Ruby企業版一起去,所以我試着安裝它。之後,我使用Ruby Enterprise的gem版本來安裝所有必需的gem。現在,當我重新啓動Apache並導航到我的服務器,我得到:
Exception LoadError in PhusionPassenger::Railz::ApplicationSpawner (no such file to load -- logger)
我需要記錄無論是在舊的或新版本的Ruby沒有問題:
# which irb
/usr/bin/irb
# irb
irb(main):001:0> require 'logger'
=> true
irb(main):002:0> exit
# /opt/ruby-enterprise-1.8.7-2010.02/bin/irb
irb(main):001:0> require 'logger'
=> true
一定有什麼回事路徑或權限,但我完全按照Passenger和Ruby Enterprise Edition安裝程序中的說明進行操作。任何其他想法?
我編輯了我的帖子。該gem作爲根安裝,似乎是世界可讀的。 – jrdioko 2010-09-02 19:12:30
更新了我的答案。 – 2010-09-02 20:14:18
謝謝。錢寶石文檔(http://money.rubyforge.org/)說要使用'require'money''。用'config.gem'money'替換我的environment.rb中的require會導致Passenger給我錯誤:'未定義的局部變量或方法'config'for main:Object'。另外,我應該提及在我的開發環境中使用相同代碼的一切工作正常。 – jrdioko 2010-09-02 20:36:19