2011-03-24 18 views
4

我一直在爲這個Sinatra應用程序的暫存服務器爭取兩天。我感到非常沮喪。最新的坑洞是乘客遞給了Ruby的錯誤:乘客上的Sinatra應用程序找不到機架(使用RVM)

沒有這樣的文件加載 - 機架

Ruby中,我們使用的是其nginx.conf文件顯示,並在乘客所在:

passenger_root /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5; 
passenger_ruby /usr/local/rvm/rubies/ruby-1.9.2-p180/bin/ruby; 

OK,這樣的Ruby 1.9.2我們。

所述虛擬主機的配置包括:

root /var/www/staging-proweb/current/rack/public; 
passenger_enabled on; 
rack_env   staging; 

和rackup文件具有:

require 'rubygems' 
require 'sinatra' 
require 'myapp1.rb' 

run Sinatra::Application 

其接着發送我們到myapp1.rb文件,該文件包括

require 'rubygems' 
require 'rack' 
require 'sinatra' 

...我假設西納特拉要求是什麼在呼喚機架。

寶石的有:

~$ which ruby 
/usr/local/rvm/rubies/ruby-1.9.2-p180/bin/ruby 
~$ gem list rack 

*** LOCAL GEMS *** 

rack (1.2.2) 
rack-flash (0.1.1) 

的錯誤似乎是在RVM目錄中的文件,從第一個三線的堆棧跟蹤判斷:

0 /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 36 in `require' 
1 /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb 36 in `require' 
2 /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/rack/application_spawner.rb 219 in `load_rack_app' 

接下來我應該嘗試什麼?我非常難以忍受這一點。

回答

3

看起來問題在於passenger_ruby配置值。 RVM提供的包裝設置爲紅寶石(包括寶石)適當的環境,所以passenger_ruby線應該已經閱讀

passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p180/ruby; 

有了到位,我們似乎可以正常運行。

+1

乘客3.0這是'PassengerRuby' – tester 2012-10-18 18:14:51

+1

這是Passenger 3.0.5。在Apache中,你是對的,[它是'PassengerRuby'](http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerRuby)。在Nginx中,[它是'passenger_ruby'](http://modrails.com/documentation/Users%20guide%20Nginx.html#_passenger_ruby_lt_filename_gt)。 – pjmorse 2012-10-18 18:25:29

相關問題