Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fytzzz/3076430 to your computer and use it in GitHub Desktop.
Save fytzzz/3076430 to your computer and use it in GitHub Desktop.
Installing RVM + Ruby + Rails + Passenger + nginx on CentOS
#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/
# http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/
@fytzzz
Copy link
Author

fytzzz commented May 13, 2013

Install CentOS 6.2 下安装Java jdk 6

http://my.oschina.net/u/162274/blog/52930

@fytzzz
Copy link
Author

fytzzz commented May 13, 2013

RVM is not a function, selecting rubies with 'rvm use ...' will not work.
error:
You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use /bin/bash --login as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

@dvapelnik
Copy link

Have you any ideas about previous comment "RVM is not a function"? I`m using virual server on CentOS 6.5 and PuTTY for connecting to servier via SSH.
Any ideas?


my solution for single-user rvm installation:
I added string
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session as a function
into file ~/.bashrc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment