Развёртывание приложения на Ruby on Rails
Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby, реализует архитектурный шаблон Model-View-Controller для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером баз данных.
Базовая поддержка Ruby стала доступна вместе с Ruby-селектором на всех тарифных планах на новых серверах (пожалуйста, о наличии ruby-селектора на вашем сервере уточняйте у специалистов технической поддержки).
Расширенная поддержка доступна на тарифном плане “Профи” (а также архивных тарифах "Типовой+" и "Интернет-проект"). Она позволяет устанавливать Ruby-модули, которые содержат в себе компоненты, написанные на С/C++ и компилирующиеся в процессе установки (например, гемы nokogiri и mysql2). Для работы большинства современных веб-приложений на языке Ruby, в частности, написанных на RoR, требуется именно тарифный план с доступом к компилятору.
В данной статье рассмотрим пример настройки популярного веб-приложения Redmine, использующего Ruby on Rails версии 5.2.3, на тарифах с расширенной поддержкой Ruby версии 2.6. Для иных версий действия могут незначительно отличаться.
1. В панели управления хостингом (сPanel) выбираем в разделе "Программное обеспечение" пункт "Настройка Ruby приложений":
3. Размещаем файлы Redmine в указанную при создании приложения директорию любым удобным образом. При этому учтите, что уже имеющиеся директории являются системными и требуются для корректной работы приложения, поэтому дистрибутив следует загружать поверх, с перезаписью имеющихся файлов, но без их удаления.
4. В сPanel в пункте "Мастер баз данных MySQL" раздела "Базы данных" создаем новую базу данных, пользователя к ней, выдаём пользователю права:
7. Копируем шаблон файла настройки баз данных командой
cp database.yml.example database.yml
8. В файле database.yml указываем параметры подключения к базе данных, которую создавали в пункте 4:
10. Выполняем установку базовых гемов, с помощью которых будет развёрнуто приложение, командой
gem install bundle bundler mysql2
11. Выполняем установку оставшихся требуемых гемов из файла Gemfile через Bundler командой
~/rubyvenv/redmine/2.6/bin/bundle install
12. В базовой поставке Redmine отсутствует файл manifest.js, требуемый для запуска приложения (в вашем другом приложении на RoR указанный файл может уже присутствовать, тогда этот шаг можно пропустить), создадим пустой следующей командой:
13. Выполняем настройку хранения секретов приложения в production среде командой
RAILS_ENV=production ~/rubyvenv/redmine/2.6/bin/bundle exec rails credentials:edit
14. Выполняем миграцию базы данных:
RAILS_ENV=production ~/rubyvenv/redmine/2.6/bin/bundle exec rake db:migrate
15. Перезапускаем приложение из cPanel:
Приложение доступно по URL, указанному при установке: