Rails 3

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 13:41, 2 ноября 2011 (править)
Renton (Обсуждение | вклад)
(Настройка приложения и запуск)
← К предыдущему изменению
Текущая версия (18:09, 15 марта 2018) (править) (отменить)
Renton (Обсуждение | вклад)

 
(22 промежуточные версии не показаны)
Строка 1: Строка 1:
 +<table cellspacing="0">
 +<tr style="background: #F7D9D9">
 +<td width="950px" style="vertical-align:top; border-top: 1px solid #D63838; border-left: 1px solid #D63838; border-bottom: 1px solid #D63838; border-right: 1px solid #D63838; padding: 1em;">
 +<span style="font-size: 28px; font-weight: bold;">Эта инструкция устарела и больше не будет обновляться.<br /><br />
 +Используйте [[Rails - быстрый старт]]</span>
 +</td>
 +</tr>
 +</table>
 +<br />
 +<br />
Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться. Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться.
Строка 5: Строка 15:
== Настройка окружения == == Настройка окружения ==
-* В личном кабинете в разделе <code>/Хостинг Ruby on Rails/</code> переключите сайт в режим Rails-хостинга.+'''1.''' В личном кабинете в разделе <code>/Хостинг Ruby on Rails/</code> переключите сайт в режим Rails-хостинга.
=== Установка Ruby === === Установка Ruby ===
-На новых сервера хостинга 1Gb.ru, версия 1.9 Ruby может быть установлена в каталог /opt, чтобы это проверить, можно выполнить такую команду:+Для установки Ruby on Rails '''3-ей''' версии нам потребуется Ruby '''1.9'''.<br />
- $ ~/opt/ruby/current/bin/ruby -v+На новых серверах хостинга 1Gb.ru, версия ruby 1.9 уже установлена общесистемно в каталог /opt, чтобы это проверить, нужно выполнить такую команду:
 + $ /opt/ruby/current/bin/ruby -v
если 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 нет, то переходим к установке.+Если ruby нет, то переходим к установке.<br /><br />
-* Создаем каталог для исходных текстов:+'''1.''' Создаем каталог для исходных текстов:
$ mkdir ~/src && cd ~/src $ mkdir ~/src && cd ~/src
-* С сайта http://www.ruby-lang.org/en/downloads/ скачиваем вручную желаемую версию:+'''2.''' Скачиваем последнюю версию Ruby командой:
- wget <nowiki>ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-'''ваша_версия'''.tar.gz</nowiki>+ $ <nowiki>links -dump https://ftp.ruby-lang.org/pub/ruby/1.9/ | fgrep '.bz2 ' | sort -nk4 | tail -n 1 | awk '{system ("wget https://ftp.ruby-lang.org/pub/ruby/1.9/"$1)}'</nowiki>
-или используем команду для загрузки последней стабильной версии:+
- lynx -source <nowiki>http://www.ruby-lang.org/en/downloads/</nowiki> | grep -B2 recommended | awk '/<a href="http:/ {url = gensub(/.*href="(.*)">.*/,"\\1",""); system ("wget "url)}'+
-* Распаковка:+либо скачиваем вручную с сайта http://www.ruby-lang.org/en/downloads/ желаемую версию Ruby.
- tar xvfz ruby-1.*+
-* Переходим в распакованный каталог и устанавливаем 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+
-при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.+
-* Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:+
- cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current+
-* Настройка переменных окружения. В начало файла <code>~/.bashrc</code> добавьте строки:+'''3.''' Распаковка:
- unset RUBYOPT+ $ tar xvfj ruby-1.*
- export GEM_HOME="$HOME/.gems"+ 
- export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/gems/1.9.1"+'''4.''' Устанавливаем Ruby в свой домашний каталог в папку ~/opt
- export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:$PATH"+ $ 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
 +при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.<br /><br />
 +'''5.''' Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:
 + $ cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current
 + 
 +'''6.''' '''Настройка переменных окружения.'''<br />
 +В файл <code>~/.bashrc</code> добавляем пути к локальным gems, ruby:
 + $ grep -q RUBYOPT ~/.bashrc || sed -i '/^# rails environment/,+5d;/happen/a #\n# rails 3 environment\nunset RUBYOPT\
 + export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby"\
 + export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/bin:/opt/ruby/current/bin:${PATH}"' ~/.bashrc
Полностью файл <code>~/.bashrc</code> может выглядить так: Полностью файл <code>~/.bashrc</code> может выглядить так:
- # /etc/skel/.bashrc+ <nowiki># /etc/skel/.bashrc
# #
# This file is sourced by all *interactive* bash shells on startup, # This file is sourced by all *interactive* bash shells on startup,
Строка 42: Строка 55:
# 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 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:/opt/ruby/current/lib/ruby"
- export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:$PATH"+ export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/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.
- if <nowiki>[[ $- != *i* ]]</nowiki> ; then+ if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now! # Shell is non-interactive. Be done now!
return return
Строка 63: Строка 77:
# Put your fun stuff here. # 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+ export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl</nowiki>
-* И импорт окружения:+'''7.''' Импорт окружения:
$ source ~/.bashrc $ source ~/.bashrc
== Установка пакетов == == Установка пакетов ==
-* Ставим Rails и остальные пакеты:+'''1.''' Ставим Rails и сопутствующие пакеты:
- $ gem install rails --no-rdoc --no-ri+ $ gem install rails --no-rdoc --no-ri --version '< 4'
проверяем версию: проверяем версию:
$ rails -v $ rails -v
Строка 79: Строка 93:
$ gem install execjs --no-rdoc --no-ri $ gem install execjs --no-rdoc --no-ri
$ gem install therubyracer --no-rdoc --no-ri $ gem install therubyracer --no-rdoc --no-ri
-По умолчанию, на хостинге ставится web-сервер [https://github.com/fauna/mongrel Mongrel], но он до сих пор не работает нормально с Rails 3-ей версии, поэтому будем использовать [http://code.macournoyer.com/thin/ Thin]+ 
 +По умолчанию на хостинге 1Gb.ru для обслуживания Rails приложений ставится web-сервер [https://github.com/fauna/mongrel Mongrel], но он до сих пор не работает с Rails 3, поэтому вместо него будем использовать [http://code.macournoyer.com/thin/ Thin]
$ gem install thin --no-rdoc --no-ri $ gem install thin --no-rdoc --no-ri
-* Обращаемся в [http://www.1gb.ru/support тех. поддержку] и просим прописать наш web-сервер, вместо Mongrel'а, т.е. в файле <code>~/conf.d/mongrel</code> должна быть определена переменная <code>MONGREL_BIN_MY</code>:+'''2.''' Для того чтобы вместо Mongrel'а запускался наш web-сервер, в файле <code>~/.railsrc</code> прописываем версию своего Rails и полный путь к web-серверу:
- MONGREL_BIN_MY=$HOME/.gems/bin/thin+ $ echo -e "RAILS_VERSION=3\nMONGREL_BIN_MY=\${HOME}/.gems/bin/thin" > ~/.railsrc
== Настройка приложения и запуск == == Настройка приложения и запуск ==
-* Удаляем старое приложение и ставим свое:+'''1.''' Удаляем старое приложение и ставим свое:
- $ rm -rf ~/http/+ $ rm -rf ~/http/ && rails new ~/http
- $ rails new ~/http+ 
 +'''2.''' Добавляем в приложение библиотеку для запуска JavaScript кода непосредственно из Ruby:
 + $ echo "gem 'execjs'" >> ~/http/Gemfile
 + $ echo "gem 'therubyracer'" >> ~/http/Gemfile
-* В файл <code>~/http/config/environment.rb</code> добавляем строки:+'''3.''' Подключаем thin в приложение:
- ENV['GEM_HOME']="#{ENV['HOME']}/.gems"+ $ echo "gem 'thin'" >> ~/http/Gemfile
- ENV['GEM_PATH']="#{ENV['GEM_HOME']}:#{ENV['HOME']}/opt/ruby/current/lib/ruby/gems/1.9.1"+
-* Запускаем:+'''4.''' Запускаем:
- $ killall -9 mongrel_rails && ~/init.d/mongrel start+ $ killall -9 mongrel_rails; ~/init.d/mongrel start
-* Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ .+Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ .
== См. также == == См. также ==

Текущая версия

Эта инструкция устарела и больше не будет обновляться.

Используйте Rails - быстрый старт



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

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

Содержание

[править] Настройка окружения

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

[править] Установка Ruby

Для установки Ruby on Rails 3-ей версии нам потребуется Ruby 1.9.
На новых серверах хостинга 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 командой:

$ links -dump https://ftp.ruby-lang.org/pub/ruby/1.9/  | fgrep '.bz2 ' | sort -nk4 | tail -n 1 | awk '{system ("wget https://ftp.ruby-lang.org/pub/ruby/1.9/"$1)}'

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

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

$ tar xvfj 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 '/^# rails environment/,+5d;/happen/a #\n# rails 3 environment\nunset RUBYOPT\
export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby"\
export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/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}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby"
 export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/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

[править] Установка пакетов

1. Ставим Rails и сопутствующие пакеты:

$ gem install rails --no-rdoc --no-ri --version '< 4'

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

$ 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

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

$ gem install thin --no-rdoc --no-ri

2. Для того чтобы вместо Mongrel'а запускался наш web-сервер, в файле ~/.railsrc прописываем версию своего Rails и полный путь к web-серверу:

$ echo -e "RAILS_VERSION=3\nMONGREL_BIN_MY=\${HOME}/.gems/bin/thin" > ~/.railsrc

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

1. Удаляем старое приложение и ставим свое:

$ rm -rf ~/http/ && rails new ~/http

2. Добавляем в приложение библиотеку для запуска JavaScript кода непосредственно из Ruby:

$ echo "gem 'execjs'" >> ~/http/Gemfile
$ echo "gem 'therubyracer'" >> ~/http/Gemfile

3. Подключаем thin в приложение:

$ echo "gem 'thin'" >> ~/http/Gemfile

4. Запускаем:

$ killall -9 mongrel_rails; ~/init.d/mongrel start

Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ .

[править] См. также

[править] Ссылки

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