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
-
- http://localhost:3000 にアクセスして、動作していることを確認する
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>/
*1:インストール/アップデート方法など、詳細についてはThe MacPorts Project(http://www.macports.org/)を参照のこと