Запуск приложения Rails 4 при помощи Apache и Passenger в CentOS 6
Centos, Ruby, VPS | Комментировать запись
В данном руководстве представлены инструкции, необходимые для запуска приложения Ruby on Rails и его работы в сети.
Чтобы выполнить данное руководство, виртуальный сервер должен иметь, по крайней мере, 1 Гб RAM, потому что команды Passenger в разделе 3 интенсивно используют память.
Кроме того, подразумевается, что пользователь имеет привилегии root (или пользователя с расширенными привилегиями).
Это руководство не предназначено для настройки рабочего узла (англ. production node). Оно охватывает установку библиотеки для разработки и специальных компиляторов, что не имеет отношения к настройке производственной среды.
1: Установка Apache
Для начала нужно установить веб-сервер. Самый простой способ сделать это – загрузить Apache из стандартного yum-репозитория.
yum install httpd
После завершения установки нужно настроить систему автоматически запускать Apache при загрузке системы:
chkconfig httpd on
Без этой настройки Apache придется запускать вручную при каждой загрузке или каждом перезапуске сервера.
Далее нужно настроить Apache принимать входящие запросы, отредактировав конфигурационный файл.
nano /etc/httpd/conf/httpd.conf
В текстовом редакторе перейдите к концу файла, внесите и раскомментируйте следующую строку:
NameVirtualHost *:80
Сохраните и закройте файл. Теперь веб-сервер Apache готов к запуску:
service httpd start
Готово! Откройте IP-адрес выделенного сервера в веб-браузере и вы увидите приветственную страницу Apache.
2: Установка Ruby 2.0 и Rails 4.0
Как видите, установить Apache совсем не сложно. Стоит отметить, что установка Ruby и Rails еще проще.
Для быстрой установки используйте Ruby Version Manager (или RVM) – менеджер версий Ruby, который поддерживает несколько установок Ruby одновременно. Для установки последней стабильной версии RVM наберите:
curl -L get.rvm.io | bash -s stable
Чтобы менеджер RVM был доступен для всех пользователей, запустите скрипт оболочки:
source /etc/profile.d/rvm.sh
Кроме того, нужно установить зависимости RVM; следующая команда установит все необходимые пакеты:
rvm requirements
Теперь RVM полностью готов к использованию.
На момент написания статьи последней версией Ruby является v2.0.0; ее можно утановить при помощи следующей команды:
rvm install 2.0.0
Это загрузит и установит Ruby. После установки нужно сделать эту версию окружением по умолчанию (даже если это единственная версии, установленная в данный момент):
rvm use 2.0.0 --default
Rails поставляется как Ruby gem, добавить его в локальную систему предельно просто:
gem install rails
Быстрая проверка версии вернет результат, похожий на этот:
[user@server ~]$ ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
[user@server ~]$ rails -v
Rails 4.0.1
3: Установка Phusion Passenger
Phusion Passenger (обычно называют Passenger или mod_passenger) – это сервер приложений, который часто используется для размещения сайтов Ruby. Его код распространяется в виде Ruby gem, который затем компилируется на целевой машине и устанавливается в Apache в виде модуля.
Для начала установите gem:
gem install passenger
Прежде чем приступать к компилированию модуля для Apache, нужно установить две зависимости:
yum install curl-devel httpd-devel
Окружение готово к компилированию. Этот процесс займет несколько минут; запустите сборку модуля:
passenger-install-apache2-module
Обратите внимание: на самом деле этот скрипт не устанавливает модуль. Он собирает бинарный файл модуля и помещает в путь gem-а. Путь будет выведен на экране, после чего его нужно вручную скопировать и вставить в конфигурационный файл Apache (/etc/httpd/conf/httpd.conf).
Появится подобный результат:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-
4.0.26/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby
Эти строки нужно поместить в конец конфигурационного файла. Сохраните изменения и перезапустите Apache:
service httpd restart
Готово!
4: Пример приложения Rails
Теперь пришло время протестировать установку; генератор скелетов приложений rails – идеальный инструмент для этой цели. Он требует установить пакет разработки sqlite:
yum install sqlite-devel
Проще всего поместить код тестового приложения в root-каталоге Apache.
cd /var/www/html
В этой папке код тестового приложения будет сгенерирован в папке helloapp.
rails new helloapp
cd helloapp
Поскольку CentOS не поставляется с JavaScript, его нужно установить. JavaScript можно установить как gem; следовательно, его просто нужно указать в Gemfile следующим образом:
gem 'therubyracer'
Gem-ы, необходимые приложению Ruby устанавливаются путем размещения их в root-каталог приложения и запуска этой команды:
bundle install
Кроме того, с помощью инструмента нужно инициализировать базу данных разработки:
rake db:migrate
Снова откройте конфигурации Apache (/etc/httpd/conf/httpd.conf). В конец файла необходимо внести раздел Virtual Host:
RackEnv development
<VirtualHost *:80>
ServerName www.yourhost.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/html/helloapp/public
<Directory /var/www/html/helloapp/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
Сохраните изменения и перезапустите Apache:
service httpd restart
Откройте IP-адрес виртуального сервера в браузере; на экране появится приветственное сообщение «Welcome aboard – You’re riding Ruby on Rails».
Готово!
Tags: Apache, CentOS, CentOS 6, gem, Javascript, mod_passenger, Passenger, Phusion Passenger, Rails, Rails 4, Ruby, Ruby 2.0, Ruby on Rails, RVM, SQLite