Хостинг Ruby on Rails. Установка Ruby on Rails на сервер
Ruby on Rails - фреймворк, написанный на языке программирования Ruby для создания веб-приложений. Ruby on Rails работает практически на любой ОС (рекомендуется *nix системы) со многим веб-серверами (рекомендуется Apache или nginx + passenger, в нашем посте мы рассмотрим как раз второй вариант самостоятельной установки RoR) и СУБД (MySQL, PostgreSQL, SQLite, Oracle, Firebird, и т.д.). Разработчикам на RoR мы предлагаем качественный Ruby on Rails хостинг, это подразумевает - заказ одного из тарифов VPS сервера в Украине или VPS в Европе с предустановленным фреймворком - то есть полностью готовый сервер для разработки приложения, согласно Ваших требований и пожеланий (в комментариях к заказу сервера необходимо указать, что необходима установка ruby, а также все, что бы Вы хотели видеть на этом сервере и получить от этого сервера). В данном же посте мы рассмотрим и опишем установку Ruby on Rails на свой сервер (vps или dedicated).
Установка Ruby on Rails на свой сервер
Как показывает практика, наиболее экономично использовать RoR в связке nginx + passenger. Установим эту связку используя наименее самосборный софт, для простоты дальнейшей его поддержки. Устанавливаем необходимые дополнительные утилиты и компиляторы.
Будем делать свой rpm:
yum -y install rpm-build
Компиляторы:
yum -y install make gcc gcc-c++
Дополнительные библиотеки для сборки:
yum -y install pcre-devel zlib-devel openssl-devel
Устанавливаем ruby, rubygems с epel:
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum update
yum -y install ruby ruby-devel rubygems rubygem-rails rubygem-fastthread rubygem-sqlite3-ruby
Скачиваем nginx.src.rpm, можно отсюда:
wget http://centos.alt.ru/pub/nginx/0.8/RHEL/SRPMS/nginx-0.8.53-2.el5.src.rpm
Устанавливаем:
rpm -ivh nginx-0.8.53-2.el5.src.rpm
После выполнения данной операции исходники nginx, а также скрипты были установлены в /usr/src/redhat/SOURCES/, а spec файл (инструкция для сборки rpm пакета) в /usr/src/redhat/SPECS/.
Редактируем файл nginx.spec под наши нужды:
--add-module=%{_builddir}/passenger/ext/nginx \
В папку /usr/src/redhat/BUILD скачиваем архив passenger:
cd /usr/src/redhat/BUILD
wget http://rubyforge.org/frs/download.php/71376/passenger-2.2.15.tar.gz
tar xvf passenger-2.2.15.tar.gz
mv passenger-2.2.15 passenger
Собираем rpm nginx:
rpmbuild -ba nginx.spec
rpm nginx будет в папке /usr/src/redhat/RPMS/i686
rpm -ivh nginx-0.8.53-2.i686.rpm
Проверяем конфигурацию на ошибки, ставим nginx в автозагрузку, стартуем nginx:
nginx -t
chkconfig nginx on
service nginx start
Конфигурация Nginx (в /usr/local/app у нас будет наше RoR приложение):
user nginx;
worker_processes 10;
worker_rlimit_nofile 100000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
passenger_root /usr/local/passenger;
passenger_default_user root;
passenger_ruby /usr/local/passenger/ruby.sh;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_timeout 65;
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
server {
listen 3000;
server_name _;
root /usr/local/app/public;
passenger_enabled on;
rails_env development;
location / {
passenger_enabled on;
}
}
}
Копируем папку /usr/src/redhat/BUILD/passenger в папку /usr/local
В папку /usr/local/passenger прописываем скрипт ruby.sh
#!/bin/bash
export PATH=$PATH:/usr/sbin:/sbin
/usr/bin/ruby $1
Устанавливаем права 755 на данный файл
chmod 755 ruby.sh
Можно проверять работу приложения - открываем в браузере:
http://IP:3000
IP - IP-адрес нашего сервера.
Последние новости
Скидка на все домены Украины до 21.10.2022!
Уважаемые пользователи! Целую неделю у нас скидка -15% на регистрацию всех украинских доменов по промокоду defendersday22!Подорожание ряда украинских доменов UA ccTLD!
Уважаемые пользователи! С 1 октября 2022 нас ждет подорожание в ряде украинских доменов - in.ua, od.ua, mk.ua!Важные изменения в работе ряда украинских доменных имен!
Уважаемые пользователи! В некоторых украинских доменных зонах увеличен срок периода Redemption с 30 до 60 дней.Существенное подорожание выделенных IP-адресов (IPv4) в Германии!
Уважаемые пользователи! В Германии существенно подорожали дополнительные выделенные IP-адреса (IPv4) и IP-сети.Последнее в блоге