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>
* To install Apache 2 development headers:
Please run apt-get install apache2-prefork-dev as root.
* To install Apache Portable Runtime (APR) development headers:
Please run apt-get install libapr1-dev as root.
* To install Apache Portable Runtime Utility (APU) development headers:
Please run apt-get install libaprutil1-dev as root.
The Apache 2 module was successfully installed.
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.11 PassengerRuby /usr/bin/ruby1.8
Deploying a Ruby on Rails application: an example
Suppose you have a Rails application in /somewhere. Add a virtual host to your Apache configuration file and set its DocumentRoot to /somewhere/public:
<VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'! <Directory /somewhere/public> AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off </Directory> </VirtualHost>