Rails наступает на массовый рынок хостинга или mod_rails

Posted on April 14, 2008
Одной из вех существования rails как фреймворка можно назвать появление его на массовых хостингах. Обычно для существования приложения необходимо собрать довольно непростую связку из веб сервера и нескольких mongrel`ов. Но теперь появился модуль для самого распространенного веб сервера массового хостинга - Apache
Модуль называется mod_rails (passenger) . Для первой установки я выбрал виртуальную машину с установленном на ней Debian Etch
Для установки mod_rails необходимо поставить следующие пакеты:

apt-get install mysql-server ruby libmysql-ruby rdoc1.8 ri1.8 apache2-mpm-prefork ruby1.8-dev build-essential apache2-prefork-dev libapr1-dev libopenssl-ruby1.8 irb
После чего необходимо установить rubygems скачав его c RubyForge и выполнив
 ruby setp.rb 
После чего можно поставить passenger.
После установки можно приступать к конфигурации Apache, для этого надо собрать mod_rails коммандой

/usr/bin/passenger-install-apache2-module
И настроить его написав 2 файла:

userad-virual-www:~# cat /etc/apache2/mods-available/rails.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
userad-virual-www:~# cat /etc/apache2/mods-available/rails.conf
<IfModule passenger_module>
  RailsSpawnServer /usr/bin/passenger-spawn-server
  RailsRuby /usr/bin/ruby1.8
</IfModule>
после чего необходимо подключить его в конфиг Apache

a2enmod rails
a2enmod rewrite
А затем правим дефолтный сайт (или создаем свой новый) для того что-бы его DocumentRoot указывал на public приложения.
Перезапускаем apache и приложение запускается в production. Если есть необходимость изменить приложение без перезпуска apache то необходимо создать файл tmp/restart.txt в приложении.