Ubuntu – Apache Passenger can’t find gem

apache-2.2phusion-passengerUbuntuubuntu-10.04

I'm running Ubuntu 10.04 and I've transferred over some sites built in Sinatra. I've set up Phusion passenger, but when I visit the sites I'm getting a Passenger LoadError claiming that passenger has 'no such file to load — sinatra' yet when I run gem list or sudo gem list, I clearly see sinatra listed. Why can't passenger find this gem?

My sudo gem env output looks like this

RubyGems Environment:
– RUBYGEMS VERSION: 1.3.5
– RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]
– INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
– RUBY EXECUTABLE: /usr/local/bin/ruby
– EXECUTABLE DIRECTORY: /usr/local/bin
RUBYGEMS PLATFORMS:
– ruby
– x86_64-linux
GEM PATHS:
– /usr/local/lib/ruby/gems/1.8
– /root/.gem/ruby/1.8
GEM CONFIGURATION:
– :update_sources => true
– :verbose => true
– :benchmark => false
– :backtrace => false
– :bulk_threshold => 1000
REMOTE SOURCES:
http://gems.rubyforge.org/

running 'sudo ruby -v' I see the following:
ruby 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.01

Is that correct, or should the two ruby versions match up correctly, displaying REE in both?

Thanks in advance!

Best Answer

Check your Passenger module configuration files. In my case

content of /etc/apache2/mods-enabled/passenger.load:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger2.2.5/ext/apache2/mod_passenger.so

content of /etc/apache2/mods-enabled/passenger.conf:

<IfModule mod_passenger.c>
  PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5
  PassengerRuby /usr/local/bin/ruby
</IfModule>

PassengerRuby is telling module what ruby interpreter to use.

Related Topic