Установка и настройка 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 - имя сервера, на котором располагается аккаунт. При подключении необходимо будет ввести пароль от аккаунта. Например:

denia@begetsupp:~$ ssh erveeebbet@erveeebbet.beget.tech
The authenticity of host 'erveeebbet.beget.tech (5.101.157.37)' can't be established.
ECDSA key fingerprint is e2:fb:d8:7d:fc:12:8f:6e:c3:24:b5:ce:46:da:ff:76.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'erveeebbet.beget.tech,5.101.157.37' (ECDSA) to the list of known hosts.
erveeebbet@erveeebbet.beget.tech's password:
 
 Welcome to LTD Beget server 'osiris'
Last login: Wed Jul 22 03:26:57 2015 from 80.79.241.142
 
erveeebbet@osiris:~ [0] $

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

erveeebbet@osiris:~ [0] $ ssh localhost -p222

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

erveeebbet@localhost's password:
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 4.0.4-3-beget-acl x86_64)
 
 * Documentation: https://help.ubuntu.com/
(docker) erveeebbet@osiris:~ [0] $

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

Вернёмся в консоль и продолжим настройку Ruby.

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

(docker) erveeebbet@osiris:~ [0] $ chruby

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

(docker) erveeebbet@osiris:~ [0] $ chruby
   ruby-1.8
   ruby-1.8.7-p375
   ruby-1.9
   ruby-1.9.3-p551
   ruby-2.0
   ruby-2.0.0-p598
   ruby-2.1
   ruby-2.1.5
   ruby-2.2
   ruby-2.2.0

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

(docker) erveeebbet@osiris:~ [0] $ chruby ruby-2.2

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

(docker) erveeebbet@osiris:~ [0] $ chruby
   ruby-1.8
   ruby-1.8.7-p375
   ruby-1.9
   ruby-1.9.3-p551
   ruby-2.0
   ruby-2.0.0-p598
   ruby-2.1
   ruby-2.1.5
 * ruby-2.2
   ruby-2.2.0

Теперь Вы можете приступить к установке Rails. Скачать гем Rails можно следующим способом:

(docker) erveeebbet@osiris:~ [0] $ gem install rails --no-rdoc --no-ri
Fetching: activesupport-4.2.3.gem (100%)
Successfully installed activesupport-4.2.3
Fetching: actionview-4.2.3.gem (100%)
Successfully installed actionview-4.2.3
Fetching: actionpack-4.2.3.gem (100%)
Successfully installed actionpack-4.2.3
Fetching: railties-4.2.3.gem (100%)
Successfully installed railties-4.2.3
Fetching: activejob-4.2.3.gem (100%)
Successfully installed activejob-4.2.3
Fetching: actionmailer-4.2.3.gem (100%)
Successfully installed actionmailer-4.2.3
Fetching: activemodel-4.2.3.gem (100%)
Successfully installed activemodel-4.2.3
Fetching: activerecord-4.2.3.gem (100%)
Successfully installed activerecord-4.2.3
Fetching: rails-4.2.3.gem (100%)
Successfully installed rails-4.2.3
9 gems installed

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

(docker) erveeebbet@osiris:~ [0] $ rails new erveeebbet.bget.ru
 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

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

(docker) erveeebbet@osiris:~ [0] $ cd erveeebbet.bget.ru/

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ ln -s ~/.gem

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ ln -s public public_html

Для того, чтобы гем rb-readline работал корректно, добавьте строку в файл Gemfile:

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo "gem 'rb-readline'" >> Gemfile
(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo "gem 'i18n'" >> Gemfile
(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo "gem 'therubyracer'" >> Gemfile
(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ rm Gemfile.lock

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo -e "PassengerRuby $(which ruby)\nPassengerUploadBufferDir `pwd`/tmp" > .htaccess
(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo -e "SetENV GEM_HOME $(echo $GEM_HOME)\nSetENV GEM_PATH $(echo $GEM_PATH)" >> .htaccess
(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo 'RAILSENV development' >> .htaccess

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ bundle install
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.0
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.3
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile 0.6.2
Using nokogiri 1.6.6.2
Using rails-deprecated_sanitizer 1.0.3
Using rails-dom-testing 1.0.6
Using loofah 2.0.2
Using rails-html-sanitizer 1.0.2
Using actionview 4.2.3
Using rack 1.6.4
Using rack-test 0.6.3
Using actionpack 4.2.3
Using globalid 0.3.6
Using activejob 4.2.3
Using mime-types 2.6.1
Using mail 2.6.3
Using actionmailer 4.2.3
Using activemodel 4.2.3
Using arel 6.0.3
Using activerecord 4.2.3
Using debug_inspector 0.0.2
Using binding_of_caller 0.7.2
Using bundler 1.8.3
Using columnize 0.9.0
Using byebug 5.0.0
Using coffee-script-source 1.9.1.1
Using execjs 2.5.2
Using coffee-script 2.4.1
Using thor 0.19.1
Using railties 4.2.3
Using coffee-rails 4.1.0
Using multi_json 1.11.2
Using jbuilder 2.3.1
Using jquery-rails 4.0.4
Using sprockets 3.3.0
Using sprockets-rails 2.3.2
Using rails 4.2.3
Using rb-readline 0.5.2
Using rdoc 4.2.0
Using sass 3.4.16
Using tilt 1.4.1
Using sass-rails 5.0.3
Using sdoc 0.4.1
Using spring 1.3.6
Using sqlite3 1.3.10
Using turbolinks 2.5.3
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.

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ touch tmp/restart.txt

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

Проверка

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

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

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

(docker) erveeebbet@osiris:~ [0] $ chruby ruby-2.2

Затем перейдите в каталог с сайтом:

(docker) erveeebbet@osiris:~ [0] $ cd redmine.ru/

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ wget http://www.redmine.org/releases/redmine-3.0.3.tar.gz
--2015-08-18 11:49:47--  http://www.redmine.org/releases/redmine-3.0.3.tar.gz
Resolving www.redmine.org (www.redmine.org)... 46.4.36.71
Connecting to www.redmine.org (www.redmine.org)|46.4.36.71|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2157425 (2,1M) [application/x-gzip]
Saving to: `redmine-3.0.3.tar.gz'
 
100%[=============================================================================================================>] 2 157 425 2,68M/s in 0,8s
 
2015-08-18 11:49:48 (2,68 MB/s) - `redmine-3.0.3.tar.gz' saved [2157425/2157425]

После этого распакуйте скачанный архив:

(docker) erveeebbet@osiris:~/redmine.ru [0] $ tar xvzf redmine-3.0.3.tar.gz

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ mv redmine-3.0.3/* .

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ rm -rf redmine-3.0.3*

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ ln -s ~/.gem

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

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ ln -s public public_html

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

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ nano config/database.yml.example

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

production:
  adapter: mysql2
  database: erveeebbet_test
  host: localhost
  username: erveeebbet_test
  password: "AX@8lBCy"
  encoding: utf8

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

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ cp config/database.yml.example config/database.yml

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ mkdir -p tmp tmp/pdf public/plugin_assets

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ echo -e "PassengerRuby $(which ruby)\nPassengerUploadBufferDir `pwd`/tmp" > .htaccess

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

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

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

erveeebbet@osiris:~/redmine.ru [0] $ rm Gemfile.lock
erveeebbet@osiris:~/redmine.ru [0] $ bundle install --without development test

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ rake generate_secret_token

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

(docker) erveeebbet@osiris:~/redmine.ru [0] $ RAILS_ENV=production rake db:migrate

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

(docker) erveeebbet@osiris:~/redmine.ru [0] RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data

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

(docker) erveeebbet@osiris:~/erveeebbet.bget.ru [0] $ touch tmp/restart.txt

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

Проверка 2

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

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

Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".

Теги:

20
4791