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.
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.
Unfortunately, this doesn't seem possible. Passenger is completely incompatible with userdirs, and with VirtualDocumentRoot, a separate VirtualHost is required.