|
Хостинг 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 или ds). ![]() Как показывает практика, наиболее экономично поставить использовать 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-адрес нашего сервера. |
| « Пред. | След. » |
|---|

