Установка и настройка Ruby on Rails

Установка и настройка Ruby on Rails

Для настройки Ruby on Rails Вам потребуется подключиться к вашему аккаунту по протоколу SSH.

Статьи по теме:
Что такое SSH
Автоматическая SSH авторизация по ключу

Если вы пользуетесь OS Windows, вы можете воспользоваться терминалом либо SSH-клиентом Putty (статью по настройке можно прочитать здесь). После подключения вы сможете перейти к следующему шагу.

Если Вы пользуетесь OS Linux или OS X, Вы можете воспользоваться терминалом. Для подключения введите в терминал следующую команду:

$ ssh username@username.beget.tech

username - логин, username.beget.tech - имя сервера, на котором располагается аккаунт. При подключении необходимо будет ввести пароль от аккаунта. Например:

 ssh betutorial@betutorial.beget.tech
Warning: Permanently added 'betutorial.beget.tech' (ED25519) to the list of known hosts.
betutorial@betutorial.beget.tech's password:
Welcome to LTD BeGet SSH Server 'dragon'

betutorial@dragon:~ [0] $

Далее перейдите в виртуальный контейнер на сервере (Docker, подробнее можно ознакомится по ссылке Общие сведения по установке приложений (виртуальное окружение Docker)). Для этого используйте следующую команду:

betutorial@dragon:~ [0] $ ssh localhost -p222

Затем введите пароль. Он такой же, как и пароль для доступа к аккаунту.

betutorial@dragon's password:
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.10.161-1-beget-acl-test x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro)

(docker) betutorial@dragon:~ [0] $

Необходимо также будет настроить общий доступ к каталогу .gem средствами Файлового менеджера. Инструкция о том, как это сделать, есть в данной статье.

Установите библиотеку libyaml, которая нужна для гема psych. Загрузите и распакуйте архив с библиотекой, затем перейдите в распакованную директорию:

$ wget -O - "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz" | tar xzf - && cd yaml-0.2.5

Выполните сборку библиотеки:

$ ./configure --prefix=$HOME/.local
$ make
$ make install

Распакованную директорию можно удалить:

$ cd ~/
$ rm -rf yaml-0.2.5

Вернемся к настройке Ruby.

Для того, чтобы выбрать нужную версию Ruby, выполните следующую команду:

$ chruby

Эта команда выведет все доступные версии Ruby.

$ chruby
   2.5
   3.1
   ruby-2.5
   ruby-3.1
Обратите внимание!
На разных серверах виртуального хостинга список доступных версий ruby может отличаться.

В этом руководстве будем использовать последнюю на текущий момент версию. Выполните команду:

$ chruby ruby-3.1

Проверьте, что выбрана нужная версия Ruby - напротив нее будет символ * :

$ chruby
   2.5
   3.1
   ruby-2.5
 * ruby-3.1

Далее выполните установку гема psych:

$ gem install psych -- --with-libyaml-dir=$HOME/.local

Теперь вы можете приступить к установке Rails:

$ gem install rails --no-document
Fetching rackup-2.2.1.gem
Fetching thor-1.3.2.gem
...
Successfully installed actioncable-7.2.2.1
Successfully installed rails-7.2.2.1
46 gems installed

Затем создайте новый проект. В качестве названия проекта в рассматриваемом примере указано имя каталога:

$ rails new betutorial
 exist
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/javascripts/application.js
      create  app/assets/stylesheets/application.css
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/views/layouts/application.html.erb
      create  app/assets/images/.keep
      create  app/mailers/.keep

Перейдите в каталог проекта:

$ cd betutorial

Создайте символическую ссылку на каталог в корне сайта .gem для корректного доступа к гемам:

$ ln -s ~/.gem

Для корректной отдачи статического контента средствами Nginx создайте симлинк на папку public_html:

$ ln -s public public_html

Затем необходимо добавить в .htaccess необходимые для работы директивы. Сделать это можно следующими командами:

$ echo -e "PassengerRuby $(which ruby)" > .htaccess

$ echo -e "SetENV GEM_HOME $(echo $GEM_HOME)\nSetENV GEM_PATH $(echo $GEM_PATH)" >> .htaccess

$ echo -e "SetEnv LD_LIBRARY_PATH $HOME/.local/lib:$LD_LIBRARY_PATH" >> .htaccess

$ echo 'RAILSENV development' >> .htaccess

Для установки всех нужных гемов используйте команду bundle install:

$ bundle install
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.7.0
...
Using uglifier 2.7.1
Using web-console 2.2.1
Bundle complete! 13 Gemfile dependencies, 55 gems now installed.

Use `bundle show [gemname]` to see where a bundled gem is installed.

Осталось добавить ваш домен в список разрешенных. Для этого выполните следующую команду, вместо domain.com укажите ваш домен:

$ echo 'Rails.application.config.hosts << "domain.com"' >> config/application.rb

Для того, чтобы Passenger переприменил конфигурационный файл, создайте файл tmp/restart.txt:

$ touch tmp/restart.txt
ruby on tails

Первоначальная настройка Redmine

Redmine - инструмент для управления проектами и отслеживания ошибок. Распространяется по лицензии GNU GPL. Использует Ruby on Rails.

Вы также можете установить Redmine в разделе CMS панели управления.

Обратите внимание!
Для Redmine версии 5.1 и выше разработчики рекомендуют использовать MySQL 8. Обновить версию MySQL до 8.0 вы можете в соответствующем разделе Панели управления.

Для установки Redmine сначала необходимо будет зайти в Docker и "установить" окружение Ruby, как описано выше.

$ chruby ruby-3.1

Создайте каталог сайта, если он не создан:

$ mkdir betutorial

И перейдите в него:

$ cd betutorial

Скачайте дистрибутив Redmine:

$ wget -O - "https://www.redmine.org/releases/redmine-6.0.5.tar.gz" | tar xzf -

Переместите распакованные файлы в каталог сайта:

$ mv redmine-6.0.5/* .

Затем можно будет удалить каталог, в который был распакован архив:

$ rm -rf redmine-6.0.5

Создайте символическую ссылку на каталог в корне сайта .gem для корректного доступа к гемам:

$ ln -s ~/.gem

Напомним, что самому каталогу ~/.gem нужно будет предоставить общий доступ. Это описывалось в данной статье выше.

Для корректной отдачи статического контента средствами Nginx создайте симлинк на папку public_html:

$ ln -s public public_html

Для работы Redmine необходимо создать базу данных, подробнее здесь.

Затем необходимо указать актуальные данные для подключения к базе данных. Создайте копию файла config/database.yml.example:

$ cp config/database.yml.example config/database.yml

И откройте ее, например, с помощью редактора nano:

$ nano config/database.yml

Изменить нужно только абзац production:

production:

  adapter: mysql2

  database: betutorial_redmine

  host: localhost

  username: betutorial_redmine

  password: "AX@8lBCo79zz"

  encoding: utf8mb4

database - имя базы данных, username - имя пользователя (совпадает с именем базы данных), password - пароль для доступа к базе (указывается обязательно в двойных кавычках).

Создайте каталоги для статического контента:

$ mkdir -p tmp tmp/pdf public/plugin_assets

Затем добавьте в файл .htaccess настройки для работы Redmine:

echo -e "PassengerRuby $(which ruby)" > .htaccess

Также добавьте в файл .htaccess строки, задающие переменные окружения:

echo -e "SetENV GEM_HOME $(echo $GEM_HOME)\nSetENV GEM_PATH $(echo $GEM_PATH)" >> .htaccess

Далее используйте команду bundle install:

$ bundle config set --local without 'development test'

$ bundle install

Сгенерируйте секретный ключ, используемый Rails для шифрования хранилища, содержащего данные сессий, тем самым предотвращая их фальсификацию:

$ bundle exec rake generate_secret_token

После этого создайте структуру базы данных:

$ RAILS_ENV=production bundle exec rake db:migrate

Загрузите в базу данных значения по умолчанию:

$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data

Для того, чтобы Passenger переприменил конфигурационный файл, необходимо создать файл tmp/restart.txt:

$ touch tmp/restart.txt

Проверьте работоспособность сайта средствами браузера:

redmine

Вход в административную панель доступен по адресу http://<ваш домен>/login

По умолчанию для доступа к административной части сайта используются следующие данные:

  • Логин: admin
  • Пароль: admin

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или облачные сервисы Бегета с коллегами по цеху – ждем вас в нашем сообществе в Telegram.

Теги:

33
6251