5.4. Software Deployment
Every operating system has different ways to deploy software, even different versions of the same operating system. Some have a choice between source build and package management. Commercial systems have restrictions on what is an approved software package and version and installing anything else means you don't get support.
Because of this, it's not really possible for us to explain how to install the software on your system. We'll give you the main components that belong on each machine, and leave it to you to make sure they get installed correctly. We'll also include some common problems people run into when they install each component.
5.4.1. web1 (Apache)
Once Apache is installed you'll want to make sure it's part of your system's boot process, that you can start/stop it, and that it's accessible on port 80. If you need SSL, then take the time to learn how to configure this and get your certificate as well. We won't be covering SSL configuration in this short cut.
5.4.2. app1 (Mongrel)
This is in addition to any software you need to get your Rails application working. My recommendation is that you install only the bare minimum to get a simple test Rails application working. Only after everything is configured and running well should you install your main application.
We typically install Ruby using the OS package system and then RubyGems if it is available. After that we install everything else using gem install. Depending on your purity you may try to install everything through your system's packages or mix it up like we do.
5.4.3. db1 (MySQL)
Obviously you'll want to install MySQL on the db1 machine and configure it properly. Hopefully you've been using MySQL this whole time and doing an install is second nature to you. It might be difficult to configure MySQL for production without some prior knowledge, but ask around for a consultant to help you out. There are also a few good books you can use as a reference.
We have to confess, though, that we usually install Webmin or phpMyAdmin to manage the MySQL server. System administrators who are die-hard script junkies hate these tools, but they encapsulate many system management best practices and can help someone who has limited system administration experience. Consider installing Webmin if you need to administer a machine and don't have much time to monkey around with configuration files. An additional advantage of Webmin is that you can cluster your management and manage a fairly large group of machines from one primary machine.
5.4.4. All Boxes