Why is this permissions error occurring with mod_passenger.so?

Ethan picture Ethan · Feb 18, 2012 · Viewed 8.5k times · Source

I'm setting up a production RHEL 6 server with RVM and Passenger. I've gotten through installing RVM (to my home dir), installing Passenger, and adding the required lines to httpd.conf:

LoadModule passenger_module /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11
PassengerRuby /home/em/.rvm/wrappers/ruby-1.9.2-p290@rails_3_production/ruby

But when I restart Apache I get this error...

$ sudo /sbin/service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 218 of /etc/httpd/conf/httpd.conf: Cannot load /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so into server: /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so: cannot open shared object file: Permission denied
                                                           [FAILED]

Experimentally, I set the whole path starting at ~/.rvm/... to 777, but I'm still getting that same error.

Any thoughts?

Answer

Ethan picture Ethan · Feb 21, 2012

It turned out to have to do with SELinux.

The Passenger docs discuss it here.

After you install Passenger, find the Passenger root...

passenger-config --root

Then run this...

chcon -R -h -t httpd_sys_content_t /path-to-passenger-root