I have Rails and non-rails sites mixed together on a slice at Rackspace. It's running CentOS 6.3 and packages are managed with yum.
A php site is running under a user account (/home/chad) different than most of the sites running on the server (which are coming from /var/www). Sites in /var/www render fine. The error is:
Passenger error #2
An error occurred while trying to access '/home/chad/sdb/config.ru': Cannot stat '/home/chad/sdb/config.ru': Permission denied (errno=13)
Apache doesn't have read permissions to that file. Please fix the relevant file permissions.
This should not be intercepted nor served via Passenger at all. Following the solution in this thread (Ruby error on non-ruby site) I end up with the Apache Server Test Page instead of the Passenger Error.
The httpd.conf entry for this virtual host:
<VirtualHost *:80>
ServerName stardustbakery.com
ServerAlias www.stardustbakery.com
ServerAdmin ****@******.***
DocumentRoot "/home/chad/sdb/public_html"
CustomLog /var/log/httpd/stardustbakery.com-access_log combined
ErrorLog /var/log/httpd/stardustbakery.com-error_log
PassengerEnabled off
</VirtualHost>
I've also tried manually setting the IP for all virtual hosts and I've upgraded Passenger from 4.0.14 to 4.0.26.
Apache is version 2.2.15. PHP is 5.3.3. Ruby is 1.9.3
For what it's worth, the issue appeared to be the perms on /home/chad. Adding chad and apache to the same group and then giving the group permissions on /home/chad worked.
Likewise, we could have put the sites in a folder that was owned by that group outside of /home/chad as well, but that would have caused more logistical problems.
If there's a better solution, I'd love to hear it.