Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've installed mod_passenger for Apache on my Linux box. The module has compiled correctly and Apache seems to be loading it correctly (no errors with this side of things).

BUt when I set up a vhost to point to a Rails app (Redmine project management), I get a page moaning about "Ruby on Rails application could not be started". Specifically, "Error message: No such file or directory - config/environment.rb".

I can see that there is indeed a config/environment.rb in the Redmine root folder. My vhost config is like this:

<VirtualHost *:80>
# server DocumentRoot, address, and admin email

RailsBaseURI /redmine
DocumentRoot /srv/www/htdocs

</VirtualHost>

I have got the Redmine source at /srv/www/htdocs/redmine (with no symlinks or anything because it was moaning about that).

In a fit of rage because nothing was working, I recursively set the file ownership and mode of the /redmine folder to wwwrun:www (my Apache user and group) and 777. Do you think this is the problem?

Any ideas or advice greatly appreciated.

PS. Are there any projects out there to rewrite Redmine in PHP? LOL!

share|improve this question
add comment

2 Answers

The deployment mode for sub-URI deployments of passenger is rather specific.

You have to create symlinks. These have to point to the public directory (not the RAILS_ROOT). Passenger uses the information from this symlink to find the rest of the application. This is to make sure that you never install your Rails app inside the document root (which you should never ever do to avoid having your code and configuration openly visible to anyone.)

In your case that would mean to install Redmine to something like /srv/www/redmine. Then create a symlink

ln -s /srv/www/redmine/public /srv/www/htdocs/redmine

With that in place, you can keep your virtual host as is, assuming your webserver user has the right to read all files inside /srv/www/redmine/public. As a final tip: check the owner of the config/environment.rb file. It's owner is going to be the user redmine is run at (as long it's not root).

For more information have a look at the excellent Passenger documentation.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.