Запуск приложения Rails 4 при помощи Apache и Passenger в CentOS 6

В данном руководстве представлены инструкции, необходимые для запуска  приложения 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: , , , , , , , , , , , , , ,

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