Scientific Linux6.2 に redmine2.0 を導入したメモ

動機と概要

redmine 1.4を導入しようと思ったら、ちょうど 2.0 がリリースされたので、2.0 をインストールすることになったのでそのメモを。

いつもならRPM を作って yum で install するだけにしてしまうのだけど、依存関係を解決するのが大変だったので断念。

redmine 専用のユーザを作り、その中で redmine を http サーバ(unicorn)で動かし、フロントの apache からReverseProxy でアクセスできるようにした。

これなら他のパッケージに依存しないし、同じマシンで他のサービスを動かせるし、構成が同じマシンなら rsync するだけで動かせる(はず)。

導入手順

必要なパッケージの導入

コンパイルに必要なものは groupinstall "Development Tools" でだいたい入る。

devel 系は、一部使わないものもあるかもしれないけど、十分条件で。

mysql-server はすでに入っている前提。
(ただ、mysqld の設定で character-set-server=utf8 が指定されているかは確認。 )

$ sudo yum groupinstall "Development Tools"
$ sudo yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel mysql-devel httpd-devel ImageMagick-devel
mysql の設定
$ mysql -u root
mysql> CREATE DATABASE redmine DEFAULT CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO redmine IDENTIFIED BY '**password for redmine**';

mysqlredmine ユーザと redmine データベースを作成し、権限を割り当て。

redmine ユーザの作成
$ sudo useradd redmine
rvm のインストール

ここから先は、 redmine ユーザで行う

$ su - redmine
$ curl -L get.rvm.io | bash -s stable 
$ source .bashrc
$ source .rvm/scripts/rvm

source で読み込まずに、ログインし直しても良い。(その方が安全かな)

ruby のインストール

ruby 1.9.3p194(現時点での最新) を入れ、カレントおよびデフォルト指定
bundler も入れる

$ rvm install 1.9.3
$ rvm use --default 1.9.3
$ gem install bundler --no-rdoc --no-ri
redmine をインストール
$ svn co http://redmine.rubyforge.org/svn/branches/2.0-stable redmine-2.0
$ cd redmine-2.0
$ bundle install --without development test postgresql sqlite

現時点での最新をsvn で落とし、依存ライブラリを bundler で一気にインストール。
postgresql および sqlite は使わないので除外している。

redmine 初期設定

redmine を動かすための最低限の設定を追加。

データベース

$ cat config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: **password for redmine**
  encoding: utf8

メール送信

$ cat config/configuration.yml
production:
  email_delivery:
    delivery_method: :sendmail
redmine データベースのテーブル作成
$ rake generate_secret_token
$ rake db:migrate RAILS_ENV=production
unicorn で動かす
$ gem install unicorn --no-rdoc --no-ri
$ unicorn --listen 127.0.0.1:3001 --env=production --daemonize

unicorn は、rack に対応した web アプリケーションを動かすことが出来る http サーバ。
起動すると log/production.log にログが吐かれる。

apache の設定
<VirtualHost *:80>
    ServerName redmine.exsample.com

    ProxyPass        / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001/
</VirtualHost>

unicorn に対して ReverseProxy しているだけ。

動かし始めてからはまったこと

plugin は vendor/plugin 以下ではなくて plugin ディレクトリに入れる

2.0 から場所が変わったらしい。プラグインの解説ページだと古い記述のままだったりするので注意

既存の大きいリポジトリを参照するとタイムアウト

プロジェクト作ってリポジトリを設定し、参照すると、タイムアウトしてしまう。
大きなリポジトリの場合は、コンソールからリポジトリの情報を取り込んだほうが良いらしい。

$ rake redmine:fetch_changesets RAILS_ENV=production

最後に

  • DBMS には MySQL を利用したけど、 sqlite にすればディレクトリごと固めて全てをバックアップできるので便利かも。
  • 起動スクリプトを用意して、OS 起動時に自動的に立ち上がるようにしたい。