Redmine 1.2をMacにインストールしてみた

引っ越し関連のTODOを管理しようと思い、以前インストールしたまま埃をかぶっていたRedmineを引っ張りだしてみたところ、ローカル環境のRubyのバージョンが1.9になっていたりRailsのバージョンが3になっていたりしてまったく動かなくなっていたので、RVMを使ってRedmine用のgemsetを新しく作ってみました。そのときのメモです。

構築した環境

今回は下記のような環境を構築してみました。

Redmine Redmine 1.2
OS Mac OS X 10.6
データベース SQLite
Webサーバ Apache
Ruby 1.8.7
Rails 2.3.11

データベースは、設定が面倒くさいのでMySQLではなくSQLiteにしました。
Webサーバは、せっかくMacにはデフォルトでApacheが入っているので、MongrelではなくApacheを使うことにしました。

Redmine用のgemsetの作成

RVMを使ってRedmine用のgemsetを作成します。

$ rvm use ruby-1.8.7-p352
$ rvm gemset create redmine-1.2
$ rvm gemset use redmine-1.2

gemパッケージのインストール

Redmineのインストールに必要なgemパッケージをインストールします。

Rails 2.3.11のインストール

Redmine 1.2はRails 2.3.11でしか動かないので、Rails 2.3.11をインストールします。

$ gem install rails -v=2.3.11

gemsetにデフォルトで入っていたgemのバーションが1.8.10でしたが、Rails 2.3.11はgem 1.8未満でしか動かないらしいので*1、gemをダウングレードします。

利用可能なバーションを調べてみます。

$ gem search -rda ruby
rubygems-update (1.8.11, 1.8.10, 1.8.9, 1.8.8, 1.8.7, 1.8.6, 1.8.5, 1.8.4, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.2, 1.6.1, 1.6.0, 1.5.3, 1.5.2, 1.5.0, 1.4.2, 1.4.1, 1.4.0, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.1, 1.1.0, 1.0.1, 1.0.0, 0.9.5, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.11, 0.8.10, 0.8.8, 0.8.6, 0.8.5, 0.8.4, 0.8.3)
    Authors: Jim Weirich, Chad Fowler, Eric Hodel
    Rubyforge: http://rubyforge.org/projects/rubygems
    Homepage: http://rubygems.org

    RubyGems is a package management framework for Ruby

1.7系では1.7.2が最新のようなので、これをインストールします。

$ gem install rubygems-update -v=1.7.2
$ update_rubygems
$ gem -v
1.7.2
Rack 1.1.1のインストール

Rack 1.1.1をインストールします。
Rails 2.3.11インストール時にいっしょにインストールされた1.1.2はアンインストールします。

$ gem install rack -v=1.1.1
$ gem uninstall rack -v=1.1.2
Rake 0.8.7のインストール

Rake 0.8.7をインストールします。

$ gem install rake -v=0.8.7

いつの間にか入っていたRake 0.9.2をアンインストールしようとしたところ、下記のエラーが発生しました。

$ gem uninstall rake -v=0.9.2
ERROR:  While executing gem ... (Gem::InstallError)
    cannot uninstall, check `gem list -d rake`

いわれたとおりをgem list -d rakeを実行してみます。

$ gem list -d rake

*** LOCAL GEMS ***

rake (0.9.2, 0.8.7)
    Author: Jim Weirich
    Rubyforge: http://rubyforge.org/projects/rake
    Homepage: http://rake.rubyforge.org
    Installed at (0.9.2): /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@global
                 (0.8.7): /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@redmine-1.2.1

    Ruby based make-like utility.

どうやらRVMのglobalにインストールされているようです。
というわけで、gemsetをglobalに変更してから再度試してみたところ、無事アンインストール成功しました。

$ rvm gemset use global
$ gem list
$ gem uninstall rake

gemsetをもとに戻しておきます。

$ rvm gemset use redmine-1.2.1
i18n 0.4.2のインストール

i18n 0.4.2をインストールします。

$ gem install i18n -v=0.4.2
SQLiteドライバのインストール

sqlite3パッケージをインストールします。

$ gem install sqlite3
Passengerのインストール

Passengerをインストールします。

$ gem install passenger

最終的なgemsetは下記のようになりました。

$ gem list

*** LOCAL GEMS ***

actionmailer (2.3.11)
actionpack (2.3.11)
activerecord (2.3.11)
activeresource (2.3.11)
activesupport (2.3.11)
i18n (0.4.2)
rack (1.1.1)
rails (2.3.11)
rake (0.8.7)
rubygems-update (1.7.2)
sqlite3 (1.3.4)

Redmineのインストール

今回はSVNのソースからインストールしました。

$ svn export http://redmine.rubyforge.org/svn/branches/1.2-stable/

Apache上で動作させるので、エクスポートしたソースを~/Sites配下に移動しておきます。

$ mv 1.2-stable ~/Sites/redmine

データベースの設定を行います。

$ cd ~/Sites/redmine/
$ cp config/database.yml.example config/database.yml
$ cat config/database.yml
production:
  adapter: sqlite3
  database: db/production.sqlite3

セッションデータ暗号化用鍵の生成とテーブル作成を行います。

$ rake generate_session_store
$ rake db:migrate RAILS_ENV=production
PassengerのApache用モジュールのインストール

インストーラを実行してPassengerのApache用モジュールをインストールします。

$ passenger-install-apache2-module

インストールが完了する下記のように表示されます。
あとでApacheに設定するのでコピペしておきます。

LoadModule passenger_module /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@redmine-1.2/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@redmine-1.2/gems/passenger-3.0.9
PassengerRuby /Users/<アカウント名>/.rvm/wrappers/ruby-1.8.7-p352@redmine-1.2/ruby

Apacheの設定

Passengerの設定の追加

/etc/apache2/other/passenger.confを作成し、下記設定を追加します。
設定内容は公式サイトを参考にしました。

# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
# 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。
#
LoadModule passenger_module /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@redmine-1.2/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /Users/<アカウント名>/.rvm/gems/ruby-1.8.7-p352@redmine-1.2/gems/passenger-3.0.9
PassengerRuby /Users/<アカウント名>/.rvm/wrappers/ruby-1.8.7-p352@redmine-1.2/ruby

# Passengerが追加するHTTPヘッダを削除するための設定。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加。
#
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
バーチャルホストの設定の追加

/etc/apache2/httpd.confを下記のように編集し、バーチャルホストの設定を有効にします。

$ diff httpd.conf httpd.conf.org 
465c465
< Include /private/etc/apache2/extra/httpd-vhosts.conf
---
> #Include /private/etc/apache2/extra/httpd-vhosts.conf

/etc/apache2/extra/httpd-vhosts.confの最後に下記設定を追記します。

<VirtualHost *:80>
    DocumentRoot /Users/<アカウント名>/Sites/redmine/public
    ServerName myredmine.example.com
</VirtualHost>

/etc/hostsにMacIPアドレス(僕の場合は192.168.1.4)を追記します。

192.168.1.4     myredmine.example.com

Apacheの再起動後、ブラウザでhttp://myredmine.example.comにアクセスするとRedmineのトップ画面が表示されました。満足。

あれ、引っ越しのTODOが1つも終わってない…。