Установка й налаштування додатку Ruby в cPanel

Усім привіт, сьогодні у цій статті ми розглянемо можливість установки і налаштування Ruby ​​on rails-додатків на робочий (продакшн) сервер. В якості такого сервера будемо розглядати звичайний шаред-сервер на базі Centos 6.7 з попередньо встановленою панеллю управління WHM/cPanel.

Останніми роками розробка сайтів на Ruby ​​on rails стає досить популярною, тому все більше і більше хостингових компаній намагаються впроваджувати і підтримувати такі технології. Компанія Hostpro – не виняток. Ми впевнені, що в майбутньому цей напрямок матиме ще більше інструментів для розгортання (деплоя) проекту на сервер.

– Надійність (передбачає стабільну і швидку роботу веб-сервера, а також техпідтримку 24/7);

– Підтримка Ruby on rails;

– Можливість роботи з командним рядком (підтримка можливості використання SSH);

– Попередньо встановлена можливість роботи з GIT;

– Можливість створення, зупинки і перезапуску проектів через панель управління (якщо робимо проект для клієнтів).

Якщо спробувати визначити, які опції повинні бути доступні при виборі Ruby ​​on rails хостинг для проектів, то, на мою думку, слід виокремити наступні.

Як я вже писав раніше, в цьому прикладі будемо використовувати Linux-сервер з панеллю управління WHM/cPanel і попередньо встановленою можливістю використання Ruby/Python селектора

Для початку роботи відкриваємо нашу панель управління cPanel і гортаємо вниз до розділу «Програмне забезпечення і служби»

Програмное обеспечение cPanel

Для роботи з Ruby ​​вам необхідно перейти на сторінку “Setup Ruby app”, де ви побачите вікно “Setup new application” з такими опціями:

Ruby version – Вибір версії Ruby ​​для вашого проекту. Доступний вибір з {1,8 – 2,1}.

App Directory / home / darelvc / – Директорія, в якій будуть встановлені наші програми.

App URI – URL для доступу до Вашого додатку.

Setup Ruby app

Вводимо потрібні нам значення і тиснемо кнопку “Setup”. Після створення ми побачимо, що у нас з’явилась така таблиця для управління:

Setup new application

Так само з’явилася можливість управління додатком за допомогою модульних команд:

  • Update – Команда для оновлення налаштувань/модулів проекту.
  • ResetСкидання налаштувань/модулів проекту.
  • RestartПерезапуск налаштувань/модулів проекту.
  • RemoveВидалення проекту

Наприклад, через це вікно можна довстановлювати модулі в якості gem-файлів. До прикладу, для установки модуля haml.

Прописуємо в рядок haml – система згенерує для вас схожі модулі і подасть їх за збігами у випадному списку. Обираємо haml, після чого з’явиться вікно з вибором відповідної версії даного модуля, обираємо – 4.0.7.

Так само обов’язково обираємо і додаємо сам  bundle і bundler. За бажанням можна додати всі геми для вашого додатку. Після додавання все матиме наступний вигляд:

bundle rails cpanel

При першому запуску нашого додатку ми побачимо ось таке вікно:

It works!

Ruby 2.1

Це говорить нам про те, що все налаштовано і працює коректно.

Наступним кроком буде створення бази даних для нашого проекту. Для цього заходимо в cPanel –розділ Бази даних MySQL і створюємо потрібну нам базу даних і необхідного користувача. У моєму випадку це база даних darelvc_db і користувач darelvc_db. Додаємо новоствореного користувача до нашої БД і задаємо всі привілеї.

DB user cpanel

Тепер розпочинаємо вивантаження нашого сайту на сервер.

Для цього заходимо в консоль по SSH, якщо у вас немає доступу до SSH, то вам слід надіслати запит з контактної email-адреси на контактну пошту техпідтримки – support@hostpro.ua.

Для користувачів  Linux або Mac OS необхідно відкрити командний рядок і ввести:

ssh Имя_Вашего_пользователя@IP_адрес_сервера

  • Замість Ім’я_Вашого_користучача – введіть ваш логін доступу в cPanel.
  • Замість IP_адреса_сервера введіть IP-адресу вашого сервера, в моєму випадку це – 91.239.234.98.

Після підключення переходимо в каталог, який ви створили через панель управління раніше, при генерації нашого проекту, в моєму випадку, це recipe.

darelvc@darelvc.ml [~/recipe]# git –version

git version 2.2.0

Генеруємо і підключаємо SSH access key для нашого акаунту в github

darelvc@darelvc.ml [~/recipe]# ssh-keygen -t rsa -b 4096 -C “darelvc@gmail.com”

Generating public/private rsa key pair.

Enter file in which to save the key (/home/darelvc/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/darelvc/.ssh/id_rsa.

Your public key has been saved in /home/darelvc/.ssh/id_rsa.pub.

The key fingerprint is:

43:81:0e:c2:c3:36:a0:2d:c1:c2:c9:74:d2:be:c9:53 darelvc@gmail.com

The key’s randomart image is:

+–[ RSA 4096]—-+

cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAoRTD42UaotFSXZ/S6FVwfiYw2xPLRCecehR20/6vthXHrAddAiKdYOjUur6PZAK6ebEPyP74Gi47UzoNchWBOtA8Wmcj3QrS7tsArNrWSePtSXoQNcKem5Cx+QrTZ6XeRFbSPNUl24FvBEXKf+jwI0/2/qSRAUzVPGeB4p8id+Fk963JT8vNwwUlrcuG5jxZv04AqLj9nz8RP9qNTgaZsPmbkGyFXp0Abxe9z1uyPLWYsrQosI+SENROuTLeVx7Ilu+/7RrtZ54/yfoV0H1q/rm7WnaY3p6h4gk1nWCnQsJtqHNUutbCvChLlgWyWO0wcQ+FPnwVMYZyu6LLVA4e1k/K8ilKkP13bGONjPmznMVA1p0wtR9sArO8tYSmUS7jz8eCkTrMsZUD0xw0hWKuWhwy3TEHYIV7b99PRXeq42+EqJgsD0abLNBlNral4ltNvzhLBc/FEmidjKciww/AVG/95sJWoDifAsc1VSWXXdwHEvs8RagLKNJXFML/P6Z/9MFRAWxeEc5Vc/oaPAPRuBWr5us2BZgQe4+ylR2QxUCaD33UJcZ586vahpzsD+mNPxGYMJ5D9xEMmhrXTEIdQ3Qqkq7lGUeFgeQt+KpfS9M5fCeIueMvw8DD3IiYaKWImn4zHn+HlXaGeN+MRozRWzIGg/lebRDHvOXwS5VOCYE= darelvc@gmail.com

Цей ключ вносимо в наш акаунт на github — Setings — SSH keys — add SSH key 

github

Все, тепер ми можемо розпочинати роботу з git на нашому проекті.

В даному випадку я буду встановлювати redmine. Для цього, в першу чергу, викачуємо наш архів. Виконуємо таку команду в консолі: 

darelvc@darelvc.ml [~/recipe]# wget http://www.redmine.org/releases/redmine-3.1 .0.tar.gz

Після цього розпаковуємо наш архів:

darelvc@darelvc.ml [~/recipe]# tar -zxvf redmine-3.1.0.tar.gz

Після розпакування створиться каталог redmine-3.1.0/. Копіюємо весь його вміст в каталог recipe/. Для цього виконуємо команду:

darelvc@darelvc.ml [~/recipe]# cp -r redmine-3.1.0/* ./

Переходимо в папку config/. Для того щоб відредагувати наш конфігураційний файл для роботи з базою даних, виконуємо команду:

cp database.yml.example database.yml

Відкриваємо і редагуємо наш конфігураційний файл:

production:

adapter: mysql2

database: darelvc_db

host: localhost

username: darelvc_db

password: *******

encoding: utf8

Тепер копіюємо весь вміст з каталогу recipe/public в каталог public_html/recipe

darelvc@darelvc.ml [~/recipe]# cp -r public/* ../public_html/recipe/

cd ~/public_html/recipe/

cat htaccess.fcgi.example >> .htaccess

cp dispatch.fcgi.example dispatch.fcgi

Після цього активуємо потрібну нам версію Рубі через нашу консоль. Якщо ви обрали  версію 2.1., то вам потрібно запустити таку команду:

source ~/rubyvenv/recipe/2.1/bin/activate

Оскільки у мене створено додаток recipe, то в шляху я вказав саме його. Вам потрібно буде вказати свій.

Так само виконуємо команду bundle install

~/rubyvenv/recipe/2.1/bin/bundle install  

  • *Не забуваємо, що в шляху замість recipe потрібно вказати своє значення. Також може знадобитися ще один гем, прописуємо його в наш Gemfile – gem «bigdecimal».

В процесі установки система попросила довстановити 1 гем-файл rdoc-data, тож встановлюємо його:

~/rubyvenv/recipe/2.1/bin/gem install rdoc-data

Ще раз виконуємо команду bundle install.

Наступним кроком буде запуск міграції БД для нашого проекту.

RAILS_ENV=production ~/rubyvenv/recipe/2.1/bin/rake db:migrate

Завантажимо наші дані в БД:

RAILS_ENV=production ~/rubyvenv/recipe/2.1/bin/rake redmine:load_default_data 

У процесі установки нас запитають, якою мовою повинні бути імпортовані дані в базу даних – обираємо ru.

Перевіряємо, що у нас вийшло. Переходимо за адресою:

http://darelvc.ml/recipe/

Ініціалізуємо наш каталог для роботи з git

git init .

Додаємо всі файли:

git addA

Створюємо 1 комміт на робочому сервері:

Git commit –m “deploy to production web server”

На цьому все. Приємної роботи!