Это старая версия документа!
Установка passenger_module
Поскольку установка Ruby on Rails с mod_passenger из репозитория предложит сразу нахрен убрать php5, из-за того, что php5 собрано с apache2-mpm-prefork, ставим mod_passenger через gems, который соберёт его нам под apache2-mpm-prefork.
Ставим Ruby. Всё просто:
sudo apt-get install build-essential ruby-full libruby-extras libsqlite3-ruby rubygems apache2-prefork-dev
Потом ставим Rails:
sudo gem install rails
Чтобы добавленные gems работали нормально, надо добавить путь к ним в PATH. True Ubuntu way таков:
sudo sh -c "echo 'export PATH=/var/lib/gems/1.8/bin:\$PATH' > /etc/profile.d/gem-path-addition.sh"
и перелогиниться.
sudo gem install passenger sudo -s
Поскольку у рута свой, особенный PATH, то надо ручками дописать отето:
export PATH=/var/lib/gems/1.8/bin:$PATH
Теперь, от рута, запускаем:
passenger-install-apache2-module
Он должен всё найти и собрать нам под наш Апач правильный mod_passenger. В конце он ещё и расскажет, как надо конфигурить апач.
Для загрузки модуля в апач сделаем такое:
sudo sh -c "echo 'LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so' > /etc/apache2/mods-available/passenger.load" sudo sh -c "echo '<IfModule mod_passenger.c> PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.9 PassengerRuby /usr/bin/ruby1.8 </IfModule> ' > /etc/apache2/mods-available/passenger.conf" sudo a2enmod passenger sudo /etc/init.d/apache2 restart
Всё, у нас должен получится сервер с mod_passenger.
Теперь протестируем, создадим приложение пустое:
mkdir ~/ror cd ~/ror rails my_test_site
в конфиг апача:
Alias /ror/my_test_site /home/solik/ror/my_test_site/public <Directory /home/solik/ror/my_test_site/public> RailsEnv development RailsBaseURI /ror/my_test_site </Directory>