We are keen to use Ruby on Rails for an application we are developing at work.
However, our collegue who is in charge of our Apache server is concerned about deploying Ruby on Rails. If we do not convince him we will have trouble convincing anyone else.
Our PCs are Windows XP - our development servers are running on our PCs.
We are using Subversion and RadRails.
Our development, test and production databases are already on the Apache server.
This may be just a matter of loose use of English, but I would be very wary of running a production database on my web server. Yes, thousands of sites do it, but it really isn't recommended. Especially given:
The Apache server already runs PhP web apps and holds a number of mySQL databases. The data held on these databases must be protected (this is a hospital and it is data relating to patient treatments).
Our collegue wishes to know:
Does "it" (RoR) run as an Apache module? (He leads us to believe that this is very bad for him and he will not have time to do it)
Do you have to rebuild the Apache server? (Also apparently very bad for him)
No, there is no RoR Apache module. No, he doesn't have to rebuild his Apache.
However, there are several different ways of deploying Rails apps. One way is to run the app as a cgi process from within Apache, in which case you can refer to http://wiki.rubyonrails.com/rails/pages/HowtoSetupApacheWithFastCGIAndRubyBindings as one starting point - you will find many other variations of this. This does involve installing an Apache module, fcgi, which isn't actually a part of Rails. I believe that this isn't the currently favoured way of deploying Rails apps...
The current preference is to use Apache to serve static content, and as a proxy to either lighttpd or Mongrel (http://mongrel.rubyforge.org/) to serve dynamic Rails content. Take a look at http://blog.codahale.com/2006/06/19/time-for-a-grown-up-server-rails-mongrel-apache-capistrano-and-you/ for an overview.
Using Apache as a front end, you'll notice that both these approaches refer to Apache modules - mod_fcgi and mod_proxy, which your server admin is very likely to already have installed. They aren't Rails modules, nor are they required for Rails deployment (there are other approaches); but they are probably the commonest ways in current use.
Ultimately he wants to know - what are the steps he needs to take to get the application from our PCs (or subversion repository) and onto the Apache server?
Please advise - any help at all will be greatly appreciated. I will be very disappointed if we are forced to do the program in Java instead.
I bet :-).