Rails 3

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 15:31, 14 февраля 2013 (править)
Renton (Обсуждение | вклад)
(Установка Ruby)
← К предыдущему изменению
Версия 16:04, 14 февраля 2013 (править) (отменить)
Renton (Обсуждение | вклад)
(Установка Ruby)
К следующему изменению →
Строка 12: Строка 12:
если Ruby есть, то увидите примерно такой ответ: если Ruby есть, то увидите примерно такой ответ:
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
-в этом случае можно пропустить шаг установки Ruby и переходить к разделу '''"Настройка переменных окружения"'''.+в этом случае можно пропустить шаг установки Ruby и переходить к пункту '''"6 . Настройка переменных окружения"'''.
-Если ruby нет, то переходим к установке.<br />+Если ruby нет, то переходим к установке.<br /><br />
'''1.''' Создаем каталог для исходных текстов: '''1.''' Создаем каталог для исходных текстов:
$ mkdir ~/src && cd ~/src $ mkdir ~/src && cd ~/src
Строка 27: Строка 27:
$ cd ruby-1.* && ./configure --prefix=${HOME}/opt/ruby/$(echo ${PWD##*/} \ $ cd ruby-1.* && ./configure --prefix=${HOME}/opt/ruby/$(echo ${PWD##*/} \
| sed 's/^ruby-\(.*\)$/\1/') --disable-install-doc --disable-install-rdoc --disable-install-capi && make && make install | sed 's/^ruby-\(.*\)$/\1/') --disable-install-doc --disable-install-rdoc --disable-install-capi && make && make install
-при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.+при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.<br /><br />
'''5.''' Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink: '''5.''' Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:
- cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current+ $ cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current
-* Настройка переменных окружения. В начало файла <code>~/.bashrc</code> добавьте строки:+'''6.''' Настройка переменных окружения.<br />
- unset RUBYOPT+В файл <code>~/.bashrc</code> добавляем пути к локальным gems, ruby:
- export GEM_HOME="$HOME/.gems"+ $ grep -q RUBYOPT ~/.bashrc || sed -i '/happen/a #\n# rails 3 environment\nunset RUBYOPT\
- export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1:/opt/ruby/current/lib/ruby/gems/1.9.1"+ export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:/opt/ruby/current/lib/ruby"\
- export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:/opt/ruby/current/bin:$PATH"+ export PATH="${GEM_HOME}/bin:/opt/ruby/current/bin:${PATH}"' ~/.bashrc
Полностью файл <code>~/.bashrc</code> может выглядить так: Полностью файл <code>~/.bashrc</code> может выглядить так:
- # /etc/skel/.bashrc+ <nowiki># /etc/skel/.bashrc
- #+
- # rails environment+
- unset RUBYOPT+
- export GEM_HOME="$HOME/.gems"+
- export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1:/opt/ruby/current/lib/ruby/gems/1.9.1"+
- export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:/opt/ruby/current/bin:$PATH"+
- +
# #
# This file is sourced by all *interactive* bash shells on startup, # This file is sourced by all *interactive* bash shells on startup,
Строка 51: Строка 44:
# that can't tolerate any output. So make sure this doesn't display # that can't tolerate any output. So make sure this doesn't display
# anything or bad things will happen ! # anything or bad things will happen !
- + #
 + # rails 3 environment
 + unset RUBYOPT
 + export GEM_HOME="${HOME}/.gems"
 + export GEM_PATH="${GEM_HOME}:/opt/ruby/current/lib/ruby"
 + export PATH="${GEM_HOME}/bin:/opt/ruby/current/bin:${PATH}"
# Test for an interactive shell. There is no need to set anything # Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from # past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases. # outputting anything in those cases.
- <nowiki>if [[ $- != *i* ]] ; then</nowiki>+ if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now! # Shell is non-interactive. Be done now!
return return
Строка 68: Строка 66:
# Put your fun stuff here. # Put your fun stuff here.
- export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl+ export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl</nowiki>
-* И импорт окружения:+'''7.''' Импорт окружения:
$ source ~/.bashrc $ source ~/.bashrc

Версия 16:04, 14 февраля 2013

Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться.

Также справедливо отметить, что любой хостинг, прежде всего, стремится предоставить стабильные и проверенные версии программных продуктов, с целью обеспечить максимальную устойчивость и переносимость web-приложений. Поэтому, если вы хотите идти в одном шаге с разработчиками, то в первую очередь вам необходимо рассчитывать только на свои силы.

Содержание

Настройка окружения

1. В личном кабинете в разделе /Хостинг Ruby on Rails/ переключите сайт в режим Rails-хостинга.

Установка Ruby

Для установки Ruby on Rails 3-ей версии нам потребуется Ruby 1.9.</br> На новых серверах хостинга 1Gb.ru, версия ruby 1.9 может быть установлена в каталог /opt, чтобы это проверить, нужно выполнить такую команду:

$ /opt/ruby/current/bin/ruby -v

если Ruby есть, то увидите примерно такой ответ:

ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

в этом случае можно пропустить шаг установки Ruby и переходить к пункту "6 . Настройка переменных окружения".

Если ruby нет, то переходим к установке.

1. Создаем каталог для исходных текстов:

$ mkdir ~/src && cd ~/src

2. Скачиваем последнюю версию Ruby такой командой:

$ lynx -source http://www.ruby-lang.org/en/downloads/ | grep -B2 recommended | awk '/<a href="http:/ {url = gensub(/.*href="(.*)">.*/,"\\1",""); system ("wget "url)}'

либо скачиваем вручную с сайта http://www.ruby-lang.org/en/downloads/ желаемую версию Ruby.

3. Распаковка:

$ tar xvfz ruby-1.*

4. Устанавливаем Ruby в свой домашний каталог в папку ~/opt

$ cd ruby-1.* && ./configure --prefix=${HOME}/opt/ruby/$(echo ${PWD##*/} \
| sed 's/^ruby-\(.*\)$/\1/') --disable-install-doc --disable-install-rdoc --disable-install-capi && make && make install

при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.

5. Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:

$ cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current

6. Настройка переменных окружения.
В файл ~/.bashrc добавляем пути к локальным gems, ruby:

$ grep -q RUBYOPT ~/.bashrc || sed -i '/happen/a #\n# rails 3 environment\nunset RUBYOPT\
export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:/opt/ruby/current/lib/ruby"\
export PATH="${GEM_HOME}/bin:/opt/ruby/current/bin:${PATH}"' ~/.bashrc

Полностью файл ~/.bashrc может выглядить так:

# /etc/skel/.bashrc
 #
 # This file is sourced by all *interactive* bash shells on startup,
 # including some apparently interactive shells such as scp and rcp
 # that can't tolerate any output.  So make sure this doesn't display
 # anything or bad things will happen !
 #
 # rails 3 environment
 unset RUBYOPT
 export GEM_HOME="${HOME}/.gems"
 export GEM_PATH="${GEM_HOME}:/opt/ruby/current/lib/ruby"
 export PATH="${GEM_HOME}/bin:/opt/ruby/current/bin:${PATH}"
 
 # Test for an interactive shell.  There is no need to set anything
 # past this point for scp and rcp, and it's important to refrain from
 # outputting anything in those cases.
 if [[ $- != *i* ]] ; then
         # Shell is non-interactive.  Be done now!
         return
 fi
 
 # Midnight Commander chdir enhancement
 if [ -f /usr/share/mc/mc.gentoo ]; then
     . /usr/share/mc/mc.gentoo
 fi
 
 # Put your fun stuff here.
 
 export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl

7. Импорт окружения:

$ source ~/.bashrc

Установка пакетов

  • Ставим Rails и остальные пакеты:
$ gem install rails --no-rdoc --no-ri

проверяем версию:

$ rails -v
Rails 3.0.3
$ gem install sqlite3-ruby --no-rdoc --no-ri
$ gem install mysql --no-rdoc --no-ri
$ gem install execjs --no-rdoc --no-ri
$ gem install therubyracer --no-rdoc --no-ri

По умолчанию, на хостинге ставится web-сервер Mongrel, но он до сих пор не работает нормально с Rails 3-ей версии, поэтому будем использовать Thin

$ gem install thin --no-rdoc --no-ri
  • Обращаемся в тех. поддержку и просим прописать наш web-сервер, вместо Mongrel'а, т.е. в файле ~/conf.d/mongrel должна быть определена переменная MONGREL_BIN_MY:
MONGREL_BIN_MY=$HOME/.gems/bin/thin

Настройка приложения и запуск

  • Удаляем старое приложение и ставим свое:
$ rm -rf ~/http/
$ rails new ~/http
  • В файл ~/http/config/environment.rb добавляем строки:
ENV['GEM_HOME']="#{ENV['HOME']}/.gems"
ENV['GEM_PATH']="#{ENV['GEM_HOME']}:#{ENV['HOME']}/opt/ruby/current/lib/ruby/gems/1.9.1:/opt/ruby/current/lib/ruby/gems/1.9.1"
  • Добавляем в приложение библиотеку для запуска JavaScript кода непосредственно из Ruby:
$ echo "gem 'execjs'" >> ~/http/Gemfile
$ echo "gem 'therubyracer'" >> ~/http/Gemfile
  • Подключаем thin в приложении:
$ echo "gem 'thin'" >> ~/http/Gemfile
  • Запускаем:
$ killall -9 mongrel_rails; ~/init.d/mongrel start
  • Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ .

См. также

Ссылки

  • Ruby on Rails (рус.) - общая информация на сайте 1Gb.ru.
  • Ruby on Rails (англ.) - официальный сайт проекта, дистрибутивы, статьи, документация.
Личные инструменты