0
votes

On a fresh installation of Ubuntu, with Ruby/Rails/RVM with Apache via Passenger, apache will come up on a clean reboot, but crash at the first request to the Rails app.

I have done all of this many times before ... except RVM installed in multi-user mode.

It seems like maybe there's some library conflict?

Details below.

  • 64-bit Ubuntu 11.10 installation
  • created a release user, and group
  • uninstall the default apache, ruby, passenger (sudo apt-get remove ...)
  • installed RVM using the system version (multiple users)
  • installed ruby 1.9.3p194 using RVM (installed as the release user)
  • add release user to group rvm
  • ruby and gems are under /usr/local/rvm/ and are all in group rvm and readable
  • install apache2 and various supporting libraries (sudo apt-get install apache2)
  • add apache2 user (www-data) to group rvm
  • install passenger from gem (gem install passenger)
  • use passenger to make passenger module (passenger-install-apache2-module). No errors.
  • configure apache to load the correct module (under /usr/local/rvm...)
  • configure apache to reference the correct PassengerRoot and PassengerRuby
  • note: this is all without any reference to the Rails app
  • start apache (sudo apache2ctl start) ... this hangs

Apache error.log shows

[ pid=1303 thr=140033289561952 file=ext/apache2/Hooks.cpp:1389 time=2012-05-07 19:54:15.497 ]: Initializing Phusion Passenger...
[ pid=1303 thr=140033289561952 file=ext/apache2/Hooks.cpp:1664 time=2012-05-07 19:54:15.536 ]: Shutting down Phusion Passenger...
[ pid=1312 thr=140533444790112 file=ext/common/LoggingAgent/Main.cpp:283 time=2012-05-07 19:54:15.537 ]: Logging agent online, listening at unix:/tmp/passenger.1.0.1303/generation-0/logging.socket

In other words, passenger terminates moments after it starts. /var/log/syslog shows a stack dump for PassengerWatchd.

I tried running passenger in standalone mode. Nada.

Any ideas?

2

2 Answers

0
votes

For anyone looking, this ended up being an issue for several people, and there are several good workarounds posted on the Passenger Google Group here

0
votes

Make sure your passenger.conf is using the same version of ruby as in your console.

$ cat /etc/apache2/mods-available/passenger.conf 
PassengerRuby /home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18
PassengerDefaultUser www-data

Compare the PassengerRuby is the same as:

$ which ruby
/home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin/ruby