Installing RVM + Ruby + Rails + Passenger + nginx on CentOS

I recently had to install all of this ^ on a CentOS machine.  I found myself jumping all over the place trying to figure it out.  This isn’t the first time I’ve had to do this, and it probably won’t be the last time, so I decided to document my journey!

This is not a copy-and-paste script.

Go through it, read the comments, and visit ‘Sources’ links at the bottom of this post to make sure you understand what’s going on.

# Steps to install RVM + Ruby 1.9.2 + Rails + nginx + Passenger on CentOS (tested on v5.5)

# Install git and curl, if not already installed
sudo yum install git
sudo yum install curl


# Create the rvm group and add any users who will be using rvm to the group
sudo su -
groupadd rvm

# Start by adding the root user (required to install RVM)
usermod -a -G rvm root

# Then add any other users who need access to to the rvm group and logout of the superuser account
logout

# Install RVM (system wide) 
sudo bash < <( curl -L http://bit.ly/rvm-install-system-wide ) 

# Logout, then log back in (I found that my user did not belong to the RVM group until I did this) 
logout 

# Now that you have RVM installed, follow post-install instructions here: http://rvm.beginrescueend.com/rvm/install/ 
# * but change the RVM path to /usr/local/lib/rvm 

# Add this line to the end of any user who needs access to RVM's .bash_profile 
# this will add it to the end of the current user's profile 

echo '[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm"  # This loads RVM into a shell session.' >> ~/.bash_profile 
source ~/.bash_profile 

type rvm | head -1 # should print 'rvm is a function'


# I ran this to install ruby dependencies, as per instructions in `rvm notes`
sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel

# Install Ruby 1.9.2
sudo rvm install 1.9.2

# Set the RVM default to 1.9.2
rvm --default use 1.9.2

ruby -v # should return the version of ruby we're using


# Now, install Rails and Passenger
gem install rails passenger

# Install nginx with Passenger support. Press 1 when prompted
rvmsudo passenger-install-nginx-module

# Set up a nginx init script -- I used the one found here: http://articles.slicehost.com/2009/2/2/centos-adding-an-nginx-init-script
# and modified the nginx and NGINX_CONF_FILE variables to point to my nginx install (which is in /opt/nginx)
cd /etc/init.d
sudo wget -O nginx http://bit.ly/8XU8Vl
sudo chmod +x nginx

# set nginx to start automatically when the server restarts
sudo /sbin/chkconfig nginx on


# the mysql gem requires mysql-devel
sudo yum install mysql-devel
gem install mysql

# the pg gem requires postgresql-devel
sudo yum install postgresql-devel
gem install pg


# Sources
# http://constantshift.com/rails-3-0-on-mt-media-temple-ve-server-rvm-nginx-passenger/
# http://articles.slicehost.com/2009/2/2/centos-adding-an-nginx-init-script
# http://rvm.beginrescueend.com/deployment/system-wide/ (also see the 'Commnunity Resources' links at the bottom of the page)
# http://rvm.beginrescueend.com/rvm/install/

Comments

Add a Comment

Your email is never published or shared. Required fields are marked *

*