Ruby on Rails logo.png

В тази статия можете да откриете как да инсталирате и настроите Ruby on Rails проект чрез Ruby Version Manager (RVM) с WebApps платформата.

Предпоставки

Преди да инсталирате Ruby on Rails на Вашия акаунт, трябва да проверите и настроите акаунта си за следните неща:

  • Трябва да имате раздел "Уеб приложения" във Вашия хостинг Контролен панел. Ако нямате раздел "Уеб приложения" във Вашия Контролен панел, тогава инструкциите в тази статия не са валидни за Вашия акаунт и сървър. Можете да ни пишете за повече информация и съдействие.

  • "SSH достъп" и "Мрежови инструменти" трябва да са активирани за Вашия акаунт през раздел "SSH Достъп" на Контролния панел.

Инсталиране на Ruby Version Manager

Повечето от инсталационните стъпки са взети от официалните инструкции за инсталиране на RVM. За да инсталирате Ruby Version Manager, свържете се към Вашия акаунт чрез SSH и следвайте тези стъпки:

  1. RVM пакетите са подписани с GnuPG, така че трябва да настроите GnuPG и да изтеглите необходимите публични ключове. За целта създайте директория, където да съхраните ключовете, презаредете Вашия bash профил и изтеглете и импортирайте ключовете с тези команди:

    echo "export GNUPGHOME=$HOME/private/.gnupg" >> ~/.bashrc
    source ~/.bashrc
    curl -sSL https://rvm.io/mpapis.asc | gpg --import - && curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && gpgconf --kill gpg-agent
  2. За да изтеглите и стартирате инсталационния RVM скрипт, изпълнете тази команда:

    curl -sSL https://get.rvm.io | grep -v 'partition=`df' | bash -s -- --path /home/$USER/private/.rvm --ignore-dotfiles
  3. Трябва да изпълните следната команда във всички отворени SSH екрани, за да започнете да използвате RVM:

    source /home/$USER/private/.rvm/scripts/rvm
  4. Добавете RVM към bash конфигурационния файл:

    echo "source /home/$USER/private/.rvm/scripts/rvm" >> ~/.bashrc
  5. Затворете всички SSH екрани и се свържете отново. Можете да проверите дали RVM е зареден успешно за Вашата SSH сесия чрез следната команда:

    type rvm | head -n 1
    Трябва да получите "rvm is a function" като отговор в конзолата.


  6. RVM използва /bin/df инструмента, за да провери наличното свободно дисково пространство на сървъра, преди инсталирането на нова Ruby версия. Достъпът до този инструмент е забранен на нашите сървъри, с което инсталирането на нова Ruby версия ще бъде неуспешно. Тъй като няма опция да се спре тази проверка, трябва ръчно да се промени функцията __rvm_calculate_space_free. Можете да направите това със следната команда, която ще информира RVM, че има 9999MB свободното дисково пространство:

    sed -i "/__rvm_calculate_space_free/c\__free_space=9999M" /home/$USER/private/.rvm/scripts/functions/manage/base_install /home/$USER/private/.rvm/scripts/migrate
    Важно: Ако обновите RVM до по-нова версия, може да се наложи да направите тази промяна отново.

  7. "Autolibs" е RVM инструмент, който автоматично инсталира всички необходими системни пакети. Тъй като Вашия SSH потребител няма достъп за такива действия, трябва да изключите този инструмент със следната команда:

    rvm autolibs 0Ако някои от gem инсталациите са неуспешни или Вашият проект не работи заради липсващи задължителни пакети, можете да се свържете с нас за помощ. Със следната команда можете да проверите за липсващи задължителни пакети:

    rvm requirements

Инсталиране на Ruby

  1. При компилиране на Rubby, RVM може да достигне ограничение за памет, затова ограничете RVM да използва не повече от 3 процеса едновременно чрез следната команда:

    echo "rvm_make_flags=( -j 3 )" >> /home/$USER/private/.rvm/scripts/functions/rvmrc
    За да се приложи тази промяна, презаредете RVM:

    rvm reload
  2. Инсталирайте последната налична версия за Ruby с тази команда:

    rvm install ruby --latest

    RVM ще компилира Ruby изцяло и ще инсталира глобален gemset. В момента на писане на тази статия, последната налична версия на Ruby е 3.3.2. За да преминете към използването на тази версия, изпълнете следната команда:

    rvm use 3.3.2

Създаване на WebApps проект за Ruby on Rails

  1. Създайте директория за Rails WebApps проекта (напр. "~/private/blog") и влезте в нея, използвайки тази команда:

    mkdir /home/$USER/private/blog && cd /home/$USER/private/blog
  2. Създайте WebApps проекта за Ruby on Rails приложението. Можете да създадете проект за уеб приложението чрез раздел "Уеб приложения" на хостинг Контролния панел или използвайки следната команда на sureapp CLI инструмента:

    sureapp project create \
        --engine custom \
        --engine-version - \
        --release-dir "/home/$USER/private/blog" \
        Blog

    Името на WebApps проекта в дадения пример е "Blog".

Инсталиране и настройка на Rails

Можете да инсталирате Rails директно в глобалния gemset, но много разработчици предпочитат да пазят глобалния gemset чист и затова инсталират Rails в gemset на всеки отделен проект. Така отделните проекти могат да имат различни версии на Rails. За да инсталирате Rails, следвайте тези стъпки:

  1. От създаването на проекта в предишната стъпка трябва да се намирате в неговата директория (напр. "~/private/blog"), така че можете да създадете gemset за Вашия блог проект, който ще е с еднакво име с директорията - "blog":

    rvm use ruby-3.3.2@blog --ruby-version --create
    Опцията “—ruby-version” създава файлове ".ruby-version" и ".ruby-gemset" в главната директория на проекта. RVM разпознава тези файлове в главната директория на приложението и с тях зарежда зададената версия на Ruby и правилния gemset, когато влезете в тази директория.

  2. За да инсталирате Rails в gemset "blog", използвайте тази команда:

    gem install rails
    Процесът може да отнеме повече време, тъй като Rails изисква добавянето на много допълнителни gem пакети.

  3. Създайте нов Rails проект, който ще използва името на текущата директория ("blog"):

    rails new .
    Може да се покаже съобщение дали желаете да презапишете файла ".ruby-version". Старият и новият файл са с идентично съдържание, така че няма значение коя опция ще изберете.


  4. Ако някои gem пакети не са инсталирани успешно локално, можете да коригирате това със следната команда:

    bundle install
  5. Rails работи по подразбиране на порт 3000. Трябва да промените порта с този на Вашия WebApps проект във файла "config/puma.rb". Можете да направите това ръчно чрез раздел "Файлове" на хостинг Контролния панел, като промените порта в следния ред на файла:

    port ENV.fetch("PORT") { 3000 }
    Можете да направите това и чрез следните команди, които ще вземат порта на Вашия WebApps проект (работещ в директория "~/private/blog/") и ще го сложат на правилното място във въпросния файл:

    RAILS_PORT=$(sureapp project list | grep -E "/home/$USER/private/blog"| awk '{print $NF}')
    sed -i "s~^port ENV.fetch(\"PORT\") { 3000 }~port ENV.fetch\(\"PORT\"\) { $RAILS_PORT }~g" /home/$USER/private/blog/config/puma.rb
  6. Добавете домейна/поддомейна, къдете ще използвате Rails, във файла "config/application.rb" в блока с код "class Application < Rails::Application", за да позволите заявки от Вашия домейн/поддомейн към Ruby on Rails приложението. Ако желаете сайтът Ви да работи с поддомейн blog.example.com, тогава добавете следния ред във файла "config/application.rb":

    config.hosts << "blog.example.com"
    Можете да използвате и следната команда, за да постигнете това:

    sed -i 's~^    # config\.eager_load_paths << Rails\.root\.join("extras")~    # config.eager_load_paths << Rails.root.join("extras")\n    config.hosts << "blog.example.com"~g' /home/$USER/private/blog/config/application.rb

Настройка и активиране на WebApps проекта

  1. Трябва да настроите WebApps проекта (напр. "Blog") да стартира Rails уеб сървър за Вашето приложение в RVM средата. Можете да направите това със следната команда:

    sureapp project modify --start "source $(rvm env --path) && rails server" BlogКомандата за стартиране на проекта ще зарежда съответната RVM среда, която се взима с командата "rvm env --path", след което се стартира и Rails уеб сървъра с командата "rails server".

  2. Изберете страницата, на която да е достъпно Rails приложението чрез раздел "Уеб приложения" на хостинг Контролния панел. Можете да направите това, като кликнете на бутона с иконка на молив (edit.gif) до проекта "Blog" и изберете домейна и поддомейна чрез съответните падащи менюта в показалия се екран.

    Промяна на Rails WebApp

  3. Стартирайте "Blog" проекта чрез бутона с иконка на червен кръг (Enable app) до него в раздел "Уеб приложения" на хостинг Контролния панел.

    Стартиране на Rails WebApp

  4. Посетете адреса на Rails приложението (напр. https://blog.example.com/).

    Ruby on Rails