Я настраиваю сервер так:
Первым делом создаю non-root, sudoer пользователя с которого все устанавливаю и деплою(через capistrano, например).
# non-root user
useradd -d /home/deployer -m deployer
# password for deployer
passwd deployer
# deployer a sudoer
visudo
deployer ALL=(ALL) ALL
Логинимся как deployer
Устанавливаю RVM.
# RVM
\curl -sSL https://get.rvm.io | bash -s stable
# RVM requirements
rvm requirements
Через RVM ставлю Ruby.
# Ruby
rvm install 2.1.2
rvm use 2.1.2 --default
Rails без доков(--no-document)
# Rails
gem install rails 4.1.0 --no-document
NodeJS для js runtime
# ExecJS NodeJS Javascript runtime
sudo apt-get install nodejs
MySQL/PostgreSQL
Apache
# Install Apache packs
sudo apt-get install apache2 curl git build-essential zlibc zlib1g-dev zlib1g libcurl4-openssl-dev libssl-dev libopenssl-ruby apache2-prefork-dev libapr1-dev libaprutil1-dev libreadline6 libreadline6-dev
Passenger
# Passenger
gem install passenger
# Apache module
passenger-install-apache2-module
Настройка Apache
# etc/apache2/mods-available/passenger.load
LoadModule passenger_module /home/deployer/.rvm/gems/ruby-2.1.2/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so
# etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c>
PassengerRoot /home/deployer/.rvm/gems/ruby-2.1.2/gems/passenger-4.0.37
PassengerDefaultRuby /home/deployer/.rvm/gems/ruby-2.1.2/wrappers/ruby
</IfModule>
Активируем модуль пассажира для апач
sudo a2enmod passenger
Хост для апач
# etc/apache2/sites-available/sitename
<VirtualHost *:80>
ServerName sitename.com
DocumentRoot /home/deployer/ror_apps/sitename/current/public # путь для capistrano. либо свой
<Directory /home/deployer/ror_apps/sitename/current/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Активируем хост
sudo a2ensite sitename
Рестарт конфига Apache
sudo service apache2 reload
Далее настраиваем ssh ключи для деплоя и гита.
Ставим и настраиваем capistrano и получаем удовольствие от деплоя.
bundle exec cap deploy
Есть вопросы - спрашивайте.