Hi, I'm trying to deploy my rails app through passenger on an Apache2 on debian etch. When I start to boot the app it doesn't load one of my requires throwing an exception which looks like '/usr/local/lib/ site_ruby/1.8/rubygems/custom_require.rb 31 in `gem_original_require' ' on the stacktrace. The gem is installed and it's located in the correct dir which I can find through 'gem environment'. I'm running ruby 1.8.5, passenger 2.2.2 and looking for kwalify 0.7.1. . Is this a debian bug, what am I missing? The app runs fine with the same configuration on my mac. Please help, Karl
I also had this problem recently. A few things I did that ultimately got me up and running:
- Used very latest rubygems (1.3.3 in my case) instead of that from debian distro
- make sure the www-data user can read and execute all the rubygems (chown, chmod, chgrp, etc.). Hope this helps,
Karl, are you sure that all the gems installed in your Mac and on Debian are exactly the same version? You must check carefully the list of gems and versions in both parts to go out of doubt.
tried these things. The gems are the same. Changing permissions doesn't do anything. Running irb as www-data works fine. Should be a rails problem since it doesn't work with script/console...
Never mind, script/console works fine. passenger not...
Those are the steps that I done to install an application(an open source rails application that I built) that I have allocated in github. Maybe you can find there another way to prove for install Passenger + Apache2 + a Rails application.
While I don’t recommend this as a long-term solution, it should help know whether this is the issue (make a backup first w/ current permissions):
chown -R www-data:www-data /usr/lib/…gems
I believe I also did chmod 777 /usr/bin/<gem_file>
I also modified the /etc/init.d/apache2 script, adding to the ENV line things like: ENV=“env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin:/usr/lib/ruby/gems/1.8/gems/simple_record-1.0.2/bin:/usr/lib/ruby/gems/1.8/gems/cloud_cache-1.0.1/bin”
/etc/init.d/apache2 restart -
(The more proper way to do this [should be built into ./bin/passenger-install-apache2-module ?] is to give these files group permissions, include www-data in the group).
- I had to include the full path for passenger-install-apache2-module, didn’t work as # passenger-install-apache2-module , not found)
- script/console, script/runner, script/server - all worked fine, but passenger/apache2 didn’t work until I got permissions right.
Changed all the permissions, set path etc. but no changes yet...
Are you using Ruby Enterprise Edition? What is PassengerRuby set to in your Apache configuration? Which version of Ruby is being invoked from the shell (run "which ruby")?
hey guys, I'm very thankful for your help. after inspecting rubygems myself and going down the whole way again, i figured that I accidently capitalized the gem name Now everything seems to run..
Is good know that you solved that and wich was the problem, it is a good feedback . It could help maybe another person to not do the same mistake.
It always comes to the simplest solutions