15.11.2010

Хостинг Ruby on Rails. Встановлення Ruby on Rails на сервер

Хостинг 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!
14.10.2022
Знижка на всі домени України до 21.10.2022!
Шановні користувачі! Цілий тиждень у нас знижка -15% на реєстрацію всіх українських доменів за промокодом defendersday22!
Подорожчання низки українських доменів UA ccTLD!
28.09.2022
Подорожчання низки українських доменів UA ccTLD!
Шановні користувачі! З 1 жовтня 2022 року на нас чекає подорожчання низки українських доменів - in.ua, od.ua, mk.ua!
Важливі зміни у роботі низки українських доменів!
09.03.2022
Важливі зміни у роботі низки українських доменів!
Шановні користувачі! У деяких українських доменних зонах збільшено термін періоду Redemption з 30 до 60 днів.
Подорожчання виділених IP-адрес (IPv4) у Німеччині!
09.08.2021
Подорожчання виділених IP-адрес (IPv4) у Німеччині!
Шановні користувачі! У Німеччині істотно подорожчали додаткові виділені IP-адреси (IPv4) та IP-мережі.

Останні записи з блогу

Коронавірус Coronavirus (COVID-19) та кібершахраї в мережі Інтернет
02.03.2020
Коронавірус Coronavirus (COVID-19) та кібершахраї в мережі Інтернет
Паніку навколо коронавірусу COVID-19 використовують у мережі Інтернет кібершахраї - фішинг, продаж масок, вакцин і тестів.
Не відправляється пошта - перевіряємо чи не блокує провайдер 25 порт
11.01.2020
Не відправляється пошта - перевіряємо чи не блокує провайдер 25 порт
Перевіряємо чи блокує провайдер 25 порт за допомогою командного рядка в ОС Windows. Як відправляти пошту якщо 25 порт заблокований.
Як встановити Clam AntiVirus (ClamAV) на VPS або сервер з ОС CentOS
11.11.2019
Як встановити Clam AntiVirus (ClamAV) на VPS або сервер з ОС CentOS
Встановлюємо Clam AntiVirus (ClamAV) на VPS / VDS або виділений сервер з ОС CentOS і налаштовуємо щоденне сканування сервера.
ISPmanager більше не підтримує резервне копіювання на Яндекс.Диск
20.10.2019
ISPmanager більше не підтримує резервне копіювання на Яндекс.Диск
Протягом тижня Яндекс.Диск зникне зі списку сховища для резервного копіювання в панелі ISPmanager та інших продуктах ISPsystem.