Installing RedMine for Mac OS X(Leopard)

MacBookProにRedMineを入れてみるテスト。

前提条件

作業対象のマシンからインターネット接続が可能であること。
構築にはMacPortsを使用する。*1
redmineについては、以下の通りとする。
 - /Users//Rails/redmine に配置する
 - インストールするバージョンは 0.7.4 を使用する

バージョンいろいろ

上から順に、httpd(Apahce), Ruby, Rails, RubyGem, Passenger, sqlite のバージョンになる。

% httpd -v
Server version: Apache/2.2.9 (Unix)
Server built:   Sep 19 2008 10:58:54
% ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]
% rails --version
Rails 2.2.2
% gem --version
1.3.1
% passenger-config --version
2.0.6
% sqlite3 -version
3.5.7

インストール

  • 基本的には MacPorts を使ってその時点での最新版をインストールするだけ。
  • インストール時に特別なパラメータの指定等は行わない。
Ruby
% sudo port install ruby
RubyGem
% sudo port install rb-rubygems
Ruby On Rails
% sudo gem install rails
sqlite3
% sudo port install sqlite3
% sudo gem install sqlite3-ruby
redmine
% cd /Users/<username>/Downloads
% wget http://rubyforge.org/frs/download.php/49317/redmine-0.7.4.tar.gz
% tar zxvf redmine-0.7.4.tar.gz
% mkdir -p /Users/<username>/Rails/
% mv redmine-0.7.4 /Users/<username>/Rails/redmine
  • DB設定
% cd /Users/<username>/Rails/redmine
% vi config/database.yml
development:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000
  • DB初期化
% rake db:migrate RAILS_ENV=development
% rake redmine:load_default_data RAILS_ENV=development
  • Email設定
% vi config/email.yml
development:
  delivery_method: :smtp
  smtp_settings:
    address: localhost
    port: 25
  • test起動
% cd /Users/<username>/Rails/redmine
% script/server -e development

apache + passenger

passenger のインストール
% sudo gem install passenger
% sudo passenger-install-apache2-module
httpd.conf の設定
% sudo vi /etc/apache2/httpd.conf
  • 80番ポート
Listen 80
  • httpd-vhosts.confをIncludeするコメントをはずす
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
  • httpd.confの末尾にpassengerのインストール時に表示された内容を追記する
LoadModule pssenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /opt/local/bin/ruby
RailsEnv development
  • httpd-vhosts.confを編集
% sudo vi /etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerName www.redmine.sample.jp
    RailsBaseURI /redmine
</VirtualHost>
    • ところが、この設定を入れてシステム環境設定 -> 共有 -> Web共有をOn -> Off -> Onとして再起動すると、apacheが起動しなくなった。
    • 設定の書き間違い?と思って、まず文法チェック(先にやれよ、自分。。。)
  • config の syntax チェック
% sudo apachectl configtest
  httpd: Syntax error on line 502 of /private/etc/apache2/httpd.conf: Cannot load /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so into server: dlopen(/opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so, 10): no suitable image found.
  Did find:\n\t/opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so: mach-o, but wrong architecture

上述の参考URLに書かれている内容によると

つまり、Executableとmoduleの間にアーキテクチャの違いがあるのがエラーの原因と判明。

httpdの32bit(i386)専用バイナリ化

[注意] 以下の操作を行う前にapache2を停止しておくこと

% cd /usr/sbin
% sudo cp -p httpd httpd.org
% sudo lipo httpd -thin i386 -output httpd
    • lipoとは

ユニバーサルファイルを作成および操作するコマンド。常に一つのoutputを提供し、inputに変更は行わない。
lipoの挙動は以下の通り:
一覧表示する;
複数のバイナリから一つのユニバーサルファイルを作成する;
単一のアーキテクチャ向けバイナリを取り出す;
特定アーキテクチャ向けバイナリを抽出、置換して新しいユニバーサルファイルを作成する;

※lipoでバイナリを非ユニバーサル化した場合、OSのソフトウェアアップデートによってApahceがアップデートされた時に、ユニバーサルバイナリに戻ってしまうので、再度非ユニバーサル化の作業が必要になる。

上記のコマンドによる操作を行った後、apahce2を起動して、以下のURLが見られることを確認する。

http://localhost/
http://localhost/~<username>/

[rakuten:book:13091059:detail]

*1:インストール/アップデート方法など、詳細についてはThe MacPorts Project(http://www.macports.org/)を参照のこと