Как развернуть приложение Rails с Passenger и Apache в Ubuntu 14.04

Вступление

В этом руководстве мы покажем, как установить https://www.phusionpassenger.com [Phusion Passenger] в качестве вашего дружественного к Rails веб-сервера, который прост в установке, настройке и обслуживании. Мы интегрируем его в Apache на Ubuntu 14.04. К концу этого урока у нас будет тестовое приложение Rails, развернутое на нашей Droplet.

Если вы предпочитаете Nginx, а не Apache, взгляните на https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-passenger-and-nginx-on-ubuntu-14. -04 [как развернуть приложение Rails с Passenger и Nginx в Ubuntu 14.04] по ссылке.

Предпосылки

Первым шагом является создание новой капли. Для небольших сайтов достаточно использовать план 512 МБ.

Вы можете выбрать 32-битный образ Ubuntu из-за меньшего потребления памяти (64-битные программы используют примерно на 50% больше памяти, чем их 32-битные аналоги). Однако, если вам нужна более крупная машина или есть вероятность, что вы обновите до 4 ГБ ОЗУ, вам следует рассмотреть 64-разрядную версию.

Обязательно используйте Ubuntu 14.04. На момент написания этой статьи в Ubuntu 14.10 еще не было хранилища Passenger APT. Более того, Ubuntu 14.04 имеет дополнительное преимущество: это версия LTS, которая означает «долгосрочную поддержку». Релизы LTS предназначены для стабильных платформ, с которыми мы можем долго работать. Ubuntu гарантирует, что выпуски LTS будут получать обновления безопасности и другие исправления ошибок в течение пяти лет.

  • Ubuntu 14.04 32-битная капля

Шаг 1 - Добавить пользователя Sudo

После создания капли вам необходимо создать системного пользователя и защитить сервер. Вы можете сделать это, следуя статье Initial Server Setup.

Если вы хотите следовать этому руководству, вам нужен обычный пользователь с привилегиями sudo. Мы будем использовать пользователя * rails * в этом примере. Если у вашего пользователя другое имя, убедитесь, что вы используете правильные пути в следующих шагах.

Шаг 2 (необязательно) - настройка домена

Чтобы ваш сайт работал и был виден, вам нужно настроить DNS-записи так, чтобы ваше доменное имя указывало на ваш новый сервер. Вы можете найти более подробную информацию на setting the hostname, перейдя по ссылке.

Однако этот шаг не является обязательным, поскольку вы можете получить доступ к своему сайту через IP-адрес.

Шаг 3 - Установите Ruby

Мы установим Ruby вручную из исходного кода.

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

sudo apt-get update

Далее установите некоторые библиотеки и другие зависимости. Это сделает установку максимально гладкой:

sudo apt-get install build-essential libssl-dev libyaml-dev libreadline-dev openssl curl git-core zlib1g-dev bison libxml2-dev libxslt1-dev libcurl4-openssl-dev libsqlite3-dev sqlite3

Создайте временную папку для исходных файлов Ruby:

mkdir ~/ruby

Переместить в новую папку:

cd ~/ruby

Загрузите последний стабильный исходный код Ruby. На момент написания этой статьи это версия 2.1.4. Вы можете получить текущую последнюю версию с веб-сайта Ruby. Если доступна более новая версия, вам нужно заменить ссылку в следующей команде:

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.4.tar.gz

Распакуйте загруженный файл:

tar -xzf ruby-2.1.4.tar.gz

Выберите извлеченный каталог:

cd ruby-2.1.4

Запустите скрипт. Это займет некоторое время, так как он проверяет зависимости и создает новый * Makefile *, который будет содержать шаги, которые необходимо предпринять для компиляции кода:

./configure

Запустите утилиту, которая будет использовать * Makefile * для сборки исполняемой программы. Этот шаг может занять немного больше времени:

make

Теперь выполните ту же команду с параметром. Он попытается скопировать скомпилированные двоичные файлы в папку. Этот шаг требует root-доступа для записи в этот каталог:

sudo make install

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

ruby -v

Если ваша установка Ruby прошла успешно, вы должны увидеть вывод, подобный следующему:

ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-linux]

Наконец, мы можем удалить временную папку:

rm -rf ~/ruby

Шаг 4 - Установите Apache

Чтобы установить Apache, введите эту команду:

sudo apt-get install apache2

Да, это все!

Шаг 5 - Установить Пассажира

Сначала установите ключ PGP для сервера репозитория:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7

Создайте исходный файл APT:

sudo nano /etc/apt/sources.list.d/passenger.list

Вставьте следующую строку, чтобы добавить хранилище Passenger в файл:

deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main

Нажмите * CTRL + X *, чтобы выйти, введите * Y *, чтобы сохранить файл, а затем нажмите ENTER, чтобы подтвердить местоположение файла.

Измените владельца и разрешения для этого файла, чтобы ограничить доступ к * root *:

sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list

Обновите кэш APT:

sudo apt-get update

Наконец, установите Passenger:

sudo apt-get install libapache2-mod-passenger

Убедитесь, что модуль Passenger Apache; возможно, он уже включен:

sudo a2enmod passenger

Перезапустите Apache:

sudo service apache2 restart

Этот шаг перезапишет нашу версию Ruby на старую. Чтобы решить эту проблему, просто удалите неправильное местоположение Ruby и создайте новую символическую ссылку на правильный двоичный файл Ruby:

sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby

Шаг 6 - Развертывание

На этом этапе вы можете развернуть свое собственное приложение Rails, если оно у вас есть. Если вы хотите развернуть существующее приложение, вы можете загрузить свой проект на сервер и перейти к шагу + / etc / apache2 / sites-available / default +.

Для этого урока мы создадим новое приложение Rails прямо в Droplet. Нам понадобится драгоценный камень, чтобы создать новое приложение.

Перейдите в домашний каталог вашего пользователя:

cd ~

Установите гем без дополнительной документации, что ускоряет установку. Это все еще займет несколько минут:

sudo gem install --no-rdoc --no-ri rails

Теперь мы можем создать новое приложение. В нашем примере мы будем использовать имя. Если вы хотите использовать другое имя, обязательно обновите пути в других командах и файлах в этом разделе.

Мы пропустим установку Bundler, потому что позже мы хотим запустить ее вручную.

rails new testapp --skip-bundle

Введите каталог:

cd testapp

Теперь нам нужно установить среду исполнения JavaScript. Это может быть установлено как драгоценный камень. Чтобы установить его, сначала откройте * Gemfile *:

nano Gemfile

Найдите следующую строку:

# gem 'therubyracer',  platforms: :ruby

Раскомментируйте это:

gem 'therubyracer',  platforms: :ruby

Сохраните файл и запустите Bundler:

bundle install

Теперь нам нужно создать файл виртуального хоста для нашего проекта. Мы сделаем это, скопировав виртуальный хост Apache по умолчанию:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testapp.conf

Откройте файл конфигурации:

sudo nano /etc/apache2/sites-available/testapp.conf

Отредактируйте его или замените существующее содержимое, чтобы ваш конечный результат соответствовал файлу, показанному ниже. Изменения, которые вам нужно сделать, выделены в. Не забудьте использовать собственное доменное имя и правильный путь к вашему приложению Rails:

<VirtualHost *:80>


   ServerAdmin webmaster@localhost
   DocumentRoot

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined




</VirtualHost>

По сути, этот файл позволяет прослушивать наше доменное имя на порту 80, устанавливает псевдоним для субдомена * www *, устанавливает почтовый адрес администратора нашего сервера, устанавливает корневой каталог для публичного каталога нашего нового проекта и предоставляет доступ к наш сайт. Вы можете узнать больше о Apache virtual hosts, следуя инструкциям ссылка.

Чтобы проверить наши настройки, мы хотим увидеть страницу Rails * Welcome onoard *. Однако это работает, только если приложение запущено в среде разработки. Пассажир по умолчанию запускает приложение в производственной среде, поэтому нам нужно изменить это с помощью опции * RailsEnv *. Если ваше приложение готово к работе, вы можете не указывать эту настройку.

Если вы не хотите назначать свой домен этому приложению, вы можете пропустить строки + ServerName + и + ServerAlias ​​+ или использовать свой IP-адрес.

Сохраните файл (CTRL + X, Y, ENTER).

Отключите сайт по умолчанию, включите новый сайт и перезапустите Apache:

sudo a2dissite 000-default
sudo a2ensite testapp
sudo service apache2 restart

Теперь веб-сайт вашего приложения должен быть доступен. Перейдите к домену вашего Droplet или IP-адресу:

http://droplet_ip_address

Убедитесь, что ваше приложение развернуто. Вы должны увидеть либо ваше пользовательское приложение, либо страницу Rails * Welcome onoard * по умолчанию:

изображение: https: //assets.digitalocean.com/articles/rails_passenger/1.png [тестовая страница]

Приложение Rails теперь доступно на вашем сервере.

Шаг 7 - Регулярно обновляйте

Чтобы обновить Ruby, вам нужно скомпилировать последнюю версию, как показано в шаге 4 этого руководства.

Чтобы обновить Passenger и Apache, вам нужно запустить базовое обновление системы:

sudo apt-get update && sudo apt-get upgrade

Однако, если будет доступна новая системная версия Ruby, она, вероятно, перезапишет наш Ruby (установленный из исходного кода). По этой причине вам может потребоваться повторно запустить команды для удаления существующей символической ссылки на двоичный файл Ruby и создания новой (правильной) ссылки. Они перечислены в конце шага 6 этого урока.

После процесса обновления вам потребуется перезапустить веб-сервер:

sudo service apache2 restart
Related