multiple projects - Apache

J

Joe

Hi,
I'm trying to configure Apache so I can create multiple rails projects without modifying httpd.conf everytime. Right now, I have one project setup and a apache virtualhost that points to it. Here is how I have it configured.

<VirtualHost *:80>
ServerName rails.example.com
DocumentRoot /var/www/rails_project/public
RailsEnv development
</VirtualHost>


I would like to be able to set my documentRoot to /var/www and access my projects by appending the project directory name to the url (e.g. rails.example.com/rails_project).

For instance, when I set it up like that it I can access a project that is located in /var/www/rails_project, by going to rails.example.com/rails_project/public.

But I have routing problems after that. Here is what I get when clicking on "About your applications environment"

Not Found
The requested URL /rails_project/public/rails/info/properties was not found on this server.

I'm stuck here, so any help is really appreciated.


Thanks
 
J

Jason Stewart

Excerpts from Joe's message of Tue Aug 11 14:31:53 -0400 2009:
Hi,
I'm trying to configure Apache so I can create multiple rails projects without
modifying httpd.conf everytime. Right now, I have one project setup and a
apache virtualhost that points to it. Here is how I have it configured.

<VirtualHost *:80>
ServerName rails.example.com
DocumentRoot /var/www/rails_project/public
RailsEnv development
</VirtualHost>

Hi Joe,

AFAIK, that's not possible with passenger. I believe that a new vhost is
needed for every rails application on your machine (someone please
correct me if I'm wrong).

If you have an existing vhost with something else on it, you can specify
that your rails application is in a subdirectory of that document root
like this:

<VirtualHost *:80>
ServerName rails.example.com
DocumentRoot /var/www/rails_project/public
RailsEnv development
RailsBaseURI /rails
</VirtualHost>

Regards,
Jason
 
J

James Herdman

[Note: parts of this message were removed to make it a legal post.]

Hi friends.

The way I'm doing this is to have a single directory I symlink all of my
app's 'public' directory to. I set this as my DocumentRoot and then have a
single VHOST file for all of my apps. It isn't pretty, but it's fairly easy
to parse with Ruby. So, my VHOST file looks something like this:

<VirtualHost *:80>
DocumentRoot /u/apps
RailsBaseUri /foo
RailsBaseUri /bar
# etc...
</VirtualHost>

I have had *zero* luck using multiple VHOST files. This may be due to my own
lack of knowledge in using Apache though.

You may wish to redirect your query to the Passenger mailing list though.
They'll likely be of more help. Keep me posted though. I'd love to hear what
your resolution is.

James H.
 
P

Patrick Okui

On Aug 12, 2009, at 4:04 PM, James Herdman wrote:
I have had *zero* luck using multiple VHOST files. This may be due
to my own
lack of knowledge in using Apache though.
<snip>

There's a free preference pane for OS X that's floating around
somewhere that essentially does this:

<IfModule passenger_module>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName _default_
</VirtualHost>
Include /path/to/passenger_vhosts/*.conf
</IfModule>

The <IfModule> is optional - just protects against idiots like me -
and then a sample foo.conf would look like ...

<VirtualHost *:80>
ServerName foo.local
DocumentRoot "/u/rail_sites/foo/public"
RailsEnv development
<directory "/u/rail_sites/foo/public">
Order allow,deny
Allow from all
</directory>
</VirtualHost>

Adding a vhost just needs an apache reload.
 
J

Joe

Thanks for the reply. I ended up doing pretty much the same thing. I create the project, link to the public folder and then in an .htaccess file, I add RailsBaseURI /railsProject.

The only problem I have, is that it requires a trailing slash after the project name when accessing it via the web.



----- Original Message ----
From: James Herdman <[email protected]>
To: ruby-talk ML <[email protected]>
Sent: Wednesday, August 12, 2009 8:04:46 AM
Subject: Re: multiple projects - Apache

Hi friends.

The way I'm doing this is to have a single directory I symlink all of my
app's 'public' directory to. I set this as my DocumentRoot and then have a
single VHOST file for all of my apps. It isn't pretty, but it's fairly easy
to parse with Ruby. So, my VHOST file looks something like this:

<VirtualHost *:80>
DocumentRoot /u/apps
RailsBaseUri /foo
RailsBaseUri /bar
# etc...
</VirtualHost>

I have had *zero* luck using multiple VHOST files. This may be due to my own
lack of knowledge in using Apache though.

You may wish to redirect your query to the Passenger mailing list though.
They'll likely be of more help. Keep me posted though. I'd love to hear what
your resolution is.

James H.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,119
Latest member
IrmaNorcro
Top