среда, 2 июня 2010 г.

RoR: связываем Ruby on Rails и Apache2

Про то, как установить Ruby On Rails, я писал в этой статье. Теперь же постараюсь описать, как запускать ROR-приложения под Apache2.
Итак, приступим.

Для начала надо установить сам Apache и библиотеки для поддержки fast-cgi для Apache и для Ruby:
apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8
После этого нужно установить мод passenger, который, собственно, служит для связки Apache и ROR.
Ставить его можно двумя способами:
1) Через RubyGems:
sudo gem install passenger
sudo passenger-install-apache2-module
Далее необходимо следовать инструкциям, выданным скриптом. В большинстве случаев дефолтные значения будут работоспособны. В конфиги апача придется добавить что-то вроде:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /usr/bin/ruby1.8
2) Другой способ - установка из репозитория Debian.
Мода passenger нет в репозитории Lenny, он есть в бэкпортах, в тестируемом и нестабильном выпусках. Значит, для начала надо подключить что-то из них. Для подключения бэкпортов надо добавить следующую линию к файлу /etc/apt/sources.list::
deb http://www.backports.org/debian lenny-backports main contrib non-free
После чего надо обновить apt:
sudo aptitude update
,
и установить libapache2-mod-passenger:
sudo aptitude install libapache2-mod-passenger
.

Далее, необходимо настроить виртуальный хост для нашего приложения.
Создаем файл /etc/apache2/sites-available/rubytest
Вместо rubytest можно написать все, что угодно:)
В этом файле содержимое должно быть таким:

ServerName www.myrailssite.co.uk
DocumentRoot /var/www/railssite/current/public
RailsEnv production

<directory>
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</directory>
Где в DocumentRoot мы прописываем путь к директории public нашего приложения, ServerName - имя хоста, на котором вертится приложение.
После чего надо сделать символьную ссылку на этот файл в директории /etc/apache2/sites-enabled/ и обновить конфигурацию апача:
sudo ln -s /etc/apache2/sites-available/rubytest /etc/apache2/sites-enabled
sudo /etc/init.d/apache2 reload
Теперь, если открыть страницу www.myrailssite.co.uk в браузере, то мы увидим приветственную страницу Рельс:

Комментариев нет: