I already have an apache webserver set up, and it is working for PHP.

It has no static VirtualHosts set up, and dynamically routes all requests.

A request for http://example.com/ would be served from the document root /var/www/example.com (VirtualDocumentRoot), and a request for http://example.com/~user/ would be served from the document root /home/user/public_html (mod_userdir). The latter works no matter what the domain.

I would like to be able to serve Ruby on Rails applications, from the root of a document root, or from a subdirectory, using Phusion Passenger. However, it requires me to add some lines to the <VirtualHost> directive, which obviously isn't there.

I would prefer a solution that does not require root to deploy an application, but this is not critical. I also do not mind a solution that does not use Passenger, if I have the same ease of deployment.

  • Wow. I got Tumbleweed, no answers. I offered a 200point bounty, no answers. I guess it's time to give up. – Fahad Sadah Jul 11 '10 at 16:40

Simple solution is to write a location module in mod_perl that dynamically updates the virtualhost environment (not the container) on a per-request basis. That's how we handled 404s for sites that weren't set up prior to the client logging in via ftp.

  • Define "virtualhost environment", please. If you mean sites-enabled or an equivalent, we're not using it. Otherwise, yes, I could simply write a script to create a VirtualHost for each user – Fahad Sadah Jul 4 '10 at 19:01
  • with mass_virtual, you can affect the thread and dynamically add directives without needing a VirtualHost container. It affects the context of the request on a per-request basis, which will allow you to do exactly what you need to do. – karmawhore Jul 4 '10 at 19:35
  • I'm sorry, I still don't understand, and Google isn't being very helpful. Please could you post an example script? – Fahad Sadah Jul 5 '10 at 18:02

Unfortunately, this doesn't seem possible. Passenger is completely incompatible with userdirs, and with VirtualDocumentRoot, a separate VirtualHost is required.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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