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-мережі.

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

Як встановити Postfix на CentOS Stream 10 і налаштувати сервер SMTP
18.03.2025
Як встановити Postfix на CentOS Stream 10 і налаштувати сервер SMTP
Встановлюємо Postfix на VPS/VDS або виділений сервер із ОС CentOS Stream 10 та налаштовуємо SMTP сервер.
Коронавірус 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 і налаштовуємо щоденне сканування сервера.