Ubuntu – How to move a ruby on rails application to a new server

ruby-on-railsUbuntuweb-server

I have a rails app on an old Ubuntu server I need to move onto a new machine.

I haven't worked with ruby on rails so I don't really know anything about the structure of the app.

I want to load this onto an Ubuntu 8.04 AMI on Amazon EC2 and am looking for any information regarding the migration process such as:

Do I copy over the entire folder defined as the application root in the mongrel config (for ex: /u/apps/myapp/current) or just certain folders?

Am I looking for trouble if I go with the latest versions of ruby and the various gems?

Any general gotchas to look out for in the process.

Current server information:

root@webnode001:/# cat /proc/version
Linux version 2.6.15-27-server (buildd@terranova) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #1 SMP Fri Dec 8 18:43:54 UTC 2006
root@webnode001:/# rails -v
Rails 1.2.3
root@webnode001:/# mongrel_rails cluster::configure --version
Version 1.0.1
root@webnode001:/# gem -v
0.9.0
root@webnode001:/# gem list -l

*** LOCAL GEMS ***

actionmailer (1.3.3, 1.2.5)
    Service layer for easy email delivery and testing.

actionpack (1.13.3, 1.12.5)
    Web-flow and rendering framework putting the VC in MVC.

actionwebservice (1.2.3, 1.1.6)
    Web service support for Action Pack.

activerecord (1.15.3, 1.15.2, 1.14.4)
    Implements the ActiveRecord pattern for ORM.

activesupport (1.4.2, 1.4.1, 1.3.1)
    Support and utility classes used by the Rails framework.

cgi_multipart_eof_fix (2.1)
    Fix an exploitable bug in CGI multipart parsing which affects Ruby
    <= 1.8.5 when multipart boundary attribute contains a non-halting
    regular expression string.

daemons (1.0.7, 1.0.5, 1.0.4, 1.0.2)
    A toolkit to create and control daemons in different ways

eventmachine (0.7.2, 0.7.0)
    Ruby/EventMachine socket engine library

fastercsv (1.2.0, 1.1.0)
    FasterCSV is CSV, but faster, smaller, and cleaner.

fastthread (1.0)
    Optimized replacement for thread.rb primitives

ferret (0.11.4)
    Ruby indexing library.

gem_plugin (0.2.2, 0.2.1)
    A plugin system based only on rubygems that uses dependencies only

mongrel (1.0.1, 0.3.13.4)
    A small fast HTTP library and server that runs Rails, Camping, Nitro
    and Iowa apps.

mongrel_cluster (0.2.1)
    Mongrel plugin that provides commands and Capistrano tasks for
    managing multiple Mongrel processes.

mysql (2.7)
    MySQL/Ruby provides the same functions for Ruby programs that the
    MySQL C API provides for C programs.

piston (1.3.3)
    Piston is a utility that enables merge tracking of remote
    repositories.

rails (1.2.3, 1.1.6)
    Web-application framework with template engine, control-flow layer,
    and ORM.

rake (0.7.3, 0.7.1)
    Ruby based make-like utility.

sources (0.0.1)
    This package provides download sources for remote gem installation

swiftiply (0.5.1)
    A fast clustering proxy for web applications.

Best Answer

Take the whole thing under current.

Chances are your current site may be using Capistrano to deploy. If so, you may want to look into that. If this is something that you were put in charge of and the previous person is no longer available to chat with, then you will want to try to discover more information as well:

  • Was this version controlled?
  • Was Capistrano used?
  • Was the database moved as well and set up on the new host?

The database will be named application_production probably, if it is a standard Rails setup.

Also, look inside config/environment.rb for other things you may need to install. That version of Rails is fairly old, but should still be available to install via gem install as you seem to have managed to do.

Related Topic