Ruby on Rails をApacheに組み込む「passenger_module」

Passenger (mod_rails for Apache)

Ruby on Rails を Apache2 で動かすモジュールが公開されたそうです。これは吉報かも。

試してみました

VMUbuntu-7.10にインストールして動かしてみたのですが、UbuntuApache設定ファイルの書き方がよくわからなくてハマりました。

インストールメモ(せっかちな人向け)

Ubuntu-7.10

sudo apt-get upgrade
sudo apt-get install gcc make libc6-dev build-essential subversion ruby-full apache2 apache2-prefork-dev libapr1-dev sqlite3 libsqlite3-dev
sudo a2enmod rewrite
wget http://rubyforge.org/frs/download.php/35283/rubygems-1.1.1.tgz
tar xzvf rubygems-1.1.1.tgz
cd rubygems-1.1.1/
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
cd ..
rm -rf rubygems-1.1.1.tgz rubygems-1.1.1
sudo gem install rake passenger sqlite3-ruby --no-rdoc --no-ri
sudo passenger-install-apache2-module
sudo vi /etc/apache2/mods-available/passenger.load
--------------------------------------------------------------------------------
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby
--------------------------------------------------------------------------------
sudo a2enmod passenger
sudo mkdir /webapps
sudo chown syttru.syttru /webapps/
cd /webapps/
svn checkout http://redmine.rubyforge.org/svn/trunk/ redmine
cd redmine
cp config/database.yml.example config/database.yml
rake db:migrate RAILS_ENV=demo
sudo vi /etc/apache2/sites-available/redmine
--------------------------------------------------------------------------------
<VirtualHost *>
  ServerName redmine.syttru.com
  DocumentRoot /webapps/redmine/public
  <Directory /webapps/redmine/public>
    AllowOverride All
    Options All
  </Directory>
  RailsEnv demo
</VirtualHost>
--------------------------------------------------------------------------------
sudo a2ensite redmine
sudo /etc/init.d/apache2 restart

ローカルPCの c:\WINDOWS\system32\drivers\etc\hosts に以下の一行を足してごまかして

192.168.145.132 redmine.syttru.com

ブラウザで http://redmine.syttru.com/ を開く

せっかちじゃない人向け

いろいろインストール

sudo apt-get upgrade
sudo apt-get install gcc make libc6-dev build-essential subversion

Rubyをインストール

sudo apt-get install ruby-full

Gemをインストール

wget http://rubyforge.org/frs/download.php/35283/rubygems-1.1.1.tgz
tar xzvf rubygems-1.1.1.tgz
cd rubygems-1.1.1/
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
cd ..
rm -rf rubygems-1.1.1.tgz rubygems-1.1.1

Apacheをインストール

sudo apt-get install apache2 apache2-prefork-dev libapr1-dev

mod_rewriteを有効にする

sudo a2enmod rewrite


ここからPassengerのインストール

sudo gem install passenger
sudo passenger-install-apache2-module

Apacheの設定ファイルを書いて

sudo vi /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby

有効にする

sudo a2enmod passenger


SQLiteデータベースをインストール

sudo apt-get install sqlite3 libsqlite3-dev
sudo gem install sqlite3-ruby


Redmineをチェックアウトしてくる

sudo mkdir /webapps
sudo chown syttru.syttru /webapps/
cd /webapps/
svn checkout http://redmine.rubyforge.org/svn/trunk/ redmine

データベースの設定。
「production」環境だとMySQLに繋ぐみたいでした。面倒くさいので「demo」環境で設定します。

cd redmine
cp config/database.yml.example config/database.yml
rake db:migrate RAILS_ENV=demo

Apacheの設定ファイルに書いて

sudo vi /etc/apache2/sites-available/redmine
--------------------------------------------------------------------------------
<VirtualHost *>
  ServerName redmine.syttru.com
  DocumentRoot /webapps/redmine/public
  <Directory /webapps/redmine/public>
    AllowOverride All
    Options All
  </Directory>
  RailsEnv demo
</VirtualHost>
--------------------------------------------------------------------------------

有効にする。

sudo a2ensite redmine


Apacheを再起動

sudo /etc/init.d/apache2 restart


ローカルPCの c:\WINDOWS\system32\drivers\etc\hosts に以下の一行を足してごかまし

192.168.145.132 redmine.syttru.com

ブラウザで http://redmine.syttru.com/ を開く


動いた。やったー!!!


思ったこと

眠い… 目が開かない… また鬼太郎見れない…
おやすみなさい Zzz...