Apache2 + Passengerの設定

2010年8月15日に開催される岡山Ruby / Ruby on Rails勉強会でApache2 + PassengerによるRailsデプロイ実演を行ないます。
その時に使用するメモを一足先に公開しておきます。

前提とする環境

ディストリビューションはUbuntu10.04。
Railsアプリがすでに存在してProduction環境で動作すること。
apache2のインストールはまだ行っていないこと。
マシン名(+ドメイン名)は仮にrailwayとして、VirtualHostはrailway用に設定する。

apache2のインストールとVirtualHostの設定

$sudo apt-get install apache2
$cd /etc/apache2/sites-available
$sudo cp default railway
$sudo vi railway

railwayの中を編集します。


        ServerName railway #追加
        ServerAdmin webmaster@localhost

        DocumentRoot /home/kazuhisa/rails/cdman/public #railsプロジェクトのpublicに変更

   (略)


sites-availableにシンボリックリンクを張って設定を有効にします。

$cd ../sites-enabled
$sudo ln -s ../sites-available/railway .

http://railway/
にwebブラウザでアクセスして、railsの設定画面が表示されることを確認します。

Passengerのコンパイル&インストール

$sudo apt-get install g++ apache2-threaded-dev
$sudo gem install passenger
$su -
#/var/lib/gems/1.8/bin/passenger-install-apache2-module

1を選択。apacheの設定変更点が表示されるのでメモしておくこと。

Apache2の設定

#exit
$cd /etc/apache2/mods-available
$sudo vi passenger.load  <-新規作成

passenger.loadファイルにさっきのメモ内容を転記します。

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
$sudo vi passenger.conf  <-新規作成

passenger.confファイルにさっきのメモ内容を転記します。

PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/bin/ruby1.8

モジュールを有効化します。

$cd ../mods-enabled
$sudo ln -s ../mods-available/passenger.conf .
$sudo ln -s ../mods-available/passenger.load .

railwayのVirtualHost設定を変更します。

$cd ../sites-available
$sudo vi railway

同じくさっきのメモから転記です。

(略)

    AllowOverride all  #変更
    Options -MultiViews #変更

(略)

これで設定は完了です。apache2を再起動させましょう。

sudo /etc/init.d/apache2 restart

本番でシナリオどおり動くといいなぁ。
ちなみに、今回はMac OS XにインストールしたParallels Desktopのスナップショット機能を活用して検証を行ないました。

こんな感じで分岐点が明確になりいい感じです。オススメ。