CentOS: Установка Ruby on Rails + rvm + passenger + apache

Появилась необходимость установить RoR на CentOS. Поскольку в стандартных репозиториях CentOS ruby не первой свежести, пришлось изгаляться. Для установки нужной версии ruby будем использовать rvm (Ruby version manager).
Установка довольно простая:

yum install git curl
groupadd rvm
curl -L https://get.rvm.io | bash -s stable

Собственно rvm установлен. Далее, нужно добавит пользователей, которые будут работать с rvm в соответствующую группу.

usermod -aG rvm username

Перелогиниться в систему и выполнить

source /etc/profile.d/rvm.sh

На этом этапе, можно посмотреть список известных версий ruby и выбрать нужную для установки:

rvm list known

В моем случае последняя стабильная версия 1.9.2. Устанавливаем, и назначаем версией по умолчанию.

rvm install 1.9.2
rvm --default use 1.9.2

Убеждаемся, что стоит нужная версия:

ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

Далее устанавливаем рельсы и пассажира:

gem install rails passenger

Далее приступаем к установке passenger для работы с apache2. Весь процесс заскриптован, поэтому вам нужно лишь установить некоторые зависимости и запустить скрипт установки:

yum install gcc-c++ curl-devel zlib-devel httpd-devel apr-devel apr-util-devel -y
passenger-install-apache2-module

После успешной сборки, добавляем в конфиг апача строки для загрузки модуля и его настройки (смотрите подсказку скрипта нисталляции), у меня это выглядело примерно так:

   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.8
   PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby

И рестартуем apache стандартно:

service httpd restart

Далее деплоим приложение, как описано в документации:

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

Использованные материалы:
http://blog.jeffcosta.com/2010/09/24/installing-phusion-passenger-on-centos-5-5/
http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/
https://rvm.beginrescueend.com/rvm/install
Вот и вся наука.

2 thoughts to “CentOS: Установка Ruby on Rails + rvm + passenger + apache”

Добавить комментарий