床井研究室

演習の進捗管理

演習の進捗管理に Redmine を使う必要があるか微妙に疑問だし、まだほんとにやるかどうかわからないけど、いっぺん提案してみようと思って Mac OS X Server にインストールしようとしたら、OS が 10.8 (Mountain Lion) になってて MySQL が使えず、いろいろハマったのでメモ。これで正しいのかどうかわからない。多分、どこか間違ってる気がする。

参考

rubygems の update

標準の rubygems はバージョンが古いみたいだったので最新版にする。

sudo gem install rubygems-update
sudo update_rubygems

gem -v でバージョンを確認しておく。

Passenger のインストール

sudo gem install passenger
sudo passenger-install-apache2-module
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.17
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

bundler のインストール

bundler を使うと必要な gem を選んでインストールしてくれるみたい。

sudo gem install bundler

Redmine のソースを取得して展開

Web サーバの DocumentRoot 以外にインストールする。DocumentRoot は /etc/apache2/sites/0000_any_80_.conf などで設定されている。

cd <どこか適当なところで>
tar xzf redmine-2.*.*.tar.gz

Redmine で使う gem のインストール

Mountain Lion では MySQL が使えなくなったので、SQLite3 を使うことにする。PostgreSQL でもいいと思うけど。

cd <Redmine のソースを展開した場所>
bundle install --without development test postgresql mysql rmagick

ImageMagick くらい入れておいた方がいいかな。

database.yml ファイルの作成

cp config/database.yml.example config/database.yml

config/database.yml の編集:

production:
  adapter: sqlite3
  database: db/redmine.db

ディレクトリの作成

mkdir public/plugin_assets

セッションストア秘密鍵の生成

rake generate_secret_token

データベースにテーブルを作成

rake db:migrate RAILS_ENV=production

テスト

WEBrick による Web サーバを起動してテストする。

ruby script/rails server webrick -e production

うまく動いているようだったら WEBrick の Web サーバを Ctrl-C で止める。

DocumentRoot にリンクを張る

本当は Virtual Host を作って、その DocumentRoot にしたほうがいいのかもしれない。

ln -s public <DocumentRoot の場所>/redmine

Apache の設定ファイルを作成する

Passenger の起動と RailsBaseURI の設定、アクセスコントロールなど。

/etc/apache2/passenger.conf

これは [Redmine 2.1をCentOS 6.3にインストールする手順 Redmine.JP Blog](http://blog.redmine.jp/articles/redmine-2_1-installation_centos/) を参考にした。
# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
# 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。
#
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.17
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/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
RailsBaseURI /redmine

/etc/apache2/redmine.conf

redmine + passenger でのアクセス制限 - ihiro81’s diary を参照のこと。

<Location /redmine>
  Order deny,allow
  Deny from all
  Allow from xxx.xxx.xxx.xxx
</Location>

/etc/apache2/sites/0000_any_80_.conf

以下の設定を追加:

Include /etc/apache2/passenger.conf
Include /etc/apache2/redmine.conf

Redmine の所有者の変更

Redmine を展開したディレクトリ以下の所有者を全部 Apache を実行しているユーザ (_www) に変更する。多分、全部変更する必要はないけど、files, log, tmp, public/plugin_assetsdb/* だけではだめだったので。

Apache の再起動

sudo apachectl -k restart

Apache が起動したら http://host/redmine/ を開く。