Rails 3

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 21:23, 12 декабря 2010 (править)
Renton (Обсуждение | вклад)
(Новая: Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятел...)
← К предыдущему изменению
Версия 21:41, 12 декабря 2010 (править) (отменить)
Renton (Обсуждение | вклад)

К следующему изменению →
Строка 27: Строка 27:
* Настройка переменных окружения. В начало файла <code>~/.bashrc</code> добавьте строки: * Настройка переменных окружения. В начало файла <code>~/.bashrc</code> добавьте строки:
 + unset RUBYOPT
export GEM_HOME="$HOME/.gems" export GEM_HOME="$HOME/.gems"
export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1" export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1"
Строка 38: Строка 39:
# 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 !
- + 
 + unset RUBYOPT
export GEM_HOME="$HOME/.gems" export GEM_HOME="$HOME/.gems"
export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1" export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1"
Строка 46: Строка 48:
# 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.
- if [[ $- != *i* ]] ; then+ if <nowiki>[[ $- != *i* ]]</nowiki> ; then
# Shell is non-interactive. Be done now! # Shell is non-interactive. Be done now!
return return
Строка 59: Строка 61:
export PERL5LIB=/home/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/site_perl/5.8.8:/home/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/5.8.8/x86_64-linux export PERL5LIB=/home/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/site_perl/5.8.8:/home/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/5.8.8/x86_64-linux
 +
 +* И импорт окружения:
 + $ source ~/.bashrc
 +
 +== Установка пакетов ==
 +* Ставим Rails
 + $ gem install rails
 +проверяем версию:
 + $ rails -v
 + Rails 3.0.3
 +По умолчанию, на хостинге ставится web-сервер [https://github.com/fauna/mongrel Mongrel], но он до сих пор не работает нормально с Rails 3-ей версии, поэтому будем использовать [http://code.macournoyer.com/thin/ Thin]
 + $ gem install thin
 +
 +* Обращаемся в [http://www.1gb.ru/support тех. поддержку] и просим прописать наш web-сервер, вместо Mongrel'а, т.е. в файле <code>~/conf.d/mongrel</code> должна быть определена переменная <code>MONGREL_BIN_MY</code>:
 + MONGREL_BIN_MY=$HOME/.gems/bin/thin

Версия 21:41, 12 декабря 2010

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

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

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

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

Установка Ruby

На новых сервера хостинга 1Gb.ru, версия 1.9 Ruby может быть установлена в каталог /opt, чтобы это проверить, можно выполнить такую команду:

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

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

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

в этом случае можно пропустить шаг установки ruby и переходить к следующему разделу.

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

  • Создаем каталог для исходных текстов:
$ mkdir ~/src && cd ~/src
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
  • Распаковка:
tar xvfz ruby-1.9.2-p0.tar.gz
  • Переходим в распакованный каталог и устанавливаем Ruby в свой домашний каталог в папку ~/opt
cd ruby-1.9.2-p0 && ./configure --prefix=$HOME/opt/ruby/1.9.2-p0 && make && make install

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

  • Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:
cd ~/opt/ruby && ln -s ruby-1.9.2-p0 current
  • Настройка переменных окружения. В начало файла ~/.bashrc добавьте строки:
unset RUBYOPT
export GEM_HOME="$HOME/.gems"
export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1"
export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:$PATH"

Полностью файл ~/.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 !
unset RUBYOPT
export GEM_HOME="$HOME/.gems"
export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1"
export PATH="$GEM_HOME/bin:$HOME/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/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/site_perl/5.8.8:/home/virtwww/w_test-l19-ror_ac7b570f/perl/lib64/perl5/5.8.8/x86_64-linux
  • И импорт окружения:
$ source ~/.bashrc

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

  • Ставим Rails
$ gem install rails

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

$ rails -v
Rails 3.0.3

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

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