Ubuntu 12.04 に Redmine 2.0.3 を構築した時の Apache + Passenger の設定

Ruby 1.9 で Passenger を動かすために試行錯誤したのでメモしておく。基本的には、アップグレード — Redmine Guide 日本語訳 などを参考にする。

Passenger のインストール

$ sudo apt-get install libcurl4-openssl-dev
$ sudo apt-get install apache2-prefork-dev
$ sudo gem1.9.1 install passenger       
$ cd /var/lib/gems/1.9.1/gems/passenger-3.0.13
$ sudo ./passenger-install-apache2-module

Apache + Passenger の設定

/etc/apache2/mods-available/passenger.load
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-3.0.13/ext/apache2/mod_passenger.so
#LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
/etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/1.9.1/gems/passenger-3.0.13
  PassengerRuby /usr/bin/ruby1.9.1
  #PassengerRoot /usr
  #PassengerRuby /usr/bin/ruby
  PassengerDefaultUser www-data
</IfModule>
VirtualHostの設定
$ ln -s /web/example.local/redmine /web/redmine-2.0.3

上記のようにシンボリックリンクが張ってある。

<VirtualHost *:80>
  ServerName example.local
  DocumentRoot /web/example.local

  RailsBaseURI /redmine
  <Directory /web/example.local/redmine/public>
    PassengerAppRoot /web/redmine-2.0.3
  </Directory>
</VirtualHost>

わざわざDocumentRoot下からリンクしてるのは、BASIC認証をかませたときにそうしないと上手くいかなかったから。通常ならAliasとDirectory指定で大丈夫だと思う。