Ruby on Railsで作成されたプロジェクト管理ツールRedmineのインストールメモ。 またApache 2.2 + mod_fcgi + Ruby on Railsの環境でRedmineを動作させるための方法。

サーバ構成

下記の構成からなる環境へのインストールする。

  • Fedora Core 6
  • Apache 2.2
  • Subversion 1.4
  • MySQL 4.1

Ruby on Railsのインストール

Redmineの動作に必要となるRuby on Railsをインストールする。

Rubyのインストール

Rubyおよび必要となるパッケージをインストールする(ruby-rdocはRubyGemsのインストール時に必要)。

# yum install ruby irb ruby-devel ruby-rdoc

今回インストールしたバージョンは下記のとおり。

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 ruby                    i386       1.8.5.114-1.fc6  updates           280 k
 ruby-devel              i386       1.8.5.114-1.fc6  updates           556 k
 ruby-irb                i386       1.8.5.114-1.fc6  updates            68 k
 ruby-rdoc               i386       1.8.5.114-1.fc6  updates           133 k
Installing for dependencies:
 ruby-libs               i386       1.8.5.114-1.fc6  updates           1.6 M

インストール出来たことを確認。

# ruby -v
ruby 1.8.5 (2007-09-24 patchlevel 114) [i386-linux]

RubyGemsのインストール

RubyForgeのRubyGemsのサイトよりソースをダウンロードしてインストールする。

# wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
# tar xvzf rubygems-1.0.1.tgz 
# cd rubygems-1.0.1
# ruby setup.rb 

インストール出来たことを確認。

# gem -v
1.0.1

Ruby on Railsのインストール

gemを用いてインストールする。

gem install rails

インストール出来たことを確認。

# rails -v
Rails 2.0.2

Redmineのインストールと設定

Redmineのインストール、初期設定とWEBrick web serverによる動作確認。

データベースの準備

Redmineで使用するデータベースおよびユーザを追加する。 データベース名はredmine、ユーザ名はredmineuser、パスワードはredmineuserとする。

mysql> create database redmine default character set utf8;
Query OK, 1 row affected (0.03 sec)

mysql> grant all privileges on redmine.* to redmineuser@localhost;
Query OK, 0 rows affected (0.04 sec)

mysql> set password for redmineuser@localhost=password('redmineuser');
Query OK, 0 rows affected (0.03 sec)

作成した結果。

mysql> select user,host,password from mysql.user where user='redmineuser';
+-------------+-----------+------------------+
| user        | host      | password         |
+-------------+-----------+------------------+
| redmineuser | localhost | 5839b7ad66b7cf5d |
+-------------+-----------+------------------+
2 rows in set (0.00 sec)

mysql> select Host,Db,User from mysql.db where User='redmineuser';
+-----------+---------+-------------+
| Host      | Db      | User        |
+-----------+---------+-------------+
| localhost | redmine | redmineuser |
2 rows in set (0.00 sec)

Redmineのインストール

以下は一般ユーザで操作する。 ここではRedmine以外のRailsアプリケーションをインストールする可能性と、後述するApacheでのアクセス設定のしやすさを考慮して、/var/www/rails/redmineにインストールする。

$ mkdir /var/www/rails/redmine
$ cd /var/www/rails/redmine

RedmineのソースをSubversionリポジトリよりチェックアウトする(trunkよりバージョン0.6.3相当のものをチェックアウト)。

$ svn checkout http://redmine.rubyforge.org/svn/trunk/ -r 1012 .

設定ファイルを編集し、データベースに関する設定を変更する。

$ cd config
$ mv database.yml.example database.yml
$ vi database.yml

変更箇所は次のとおり。 データベースサーバに別のホストを指定する場合は、hostも変更する。

12,14c12,14
<   username: root
<   password:
---
>   username: redmineuser
>   password: redmineuser

続いてRedmineからメールを送信する際に用いるメールサーバに関する設定を変更する。

$ vi environment.rb

変更箇所は次のとおり。 必要に応じて認証に関する設定も変更する。

47c47
<               :address => "127.0.0.1",
---
>               :address => "mail.example.com",
49,52c49
<               :domain => "somenet.foo",
<               :authentication => :login,
<               :user_name => "redmine",
<               :password => "redmine",
---
>               :domain => "mail.example.com",

Redmineのインストールしたルートディレクトリに戻り、Redmineで使用するDBテーブルを作成する。 

$ cd ..
$ rake db:migrate RAILS_ENV="production"

作成したテーブルにデフォルトのデータを読み込む。

$ rake redmine:load_default_data RAILS_ENV="production"

この時、使用する言語を問われるので"ja"(日本語)を選択する。

Select language: bg, cs, de, en, es, fr, he, it, ja, ko, nl, pl, pt, pt-br, ro, ru, sr, sv, zh, zh-tw [en] ja
                                                                                                          ~~~~
====================================
Loading default configuration data for language: ja

WEBrickを用いて動作テスト

Ruby on Railsに標準で用意されているウェブサーバ'WEBrick web server'を使用して動作確認をする。 ここでは-pオプションで使用するポートとして8080を指定。

$ ruby script/server -e production -p 8080

ブラウザでhttp://localhost:8080/を開き、Redmineのページが表示されれば無事動作したこととなる。 初期状態ではユーザ名admin、パスワードadminでログイン出来る。

Apache + mod_fcgidで動作させる

Apache + mod_fcgidでRuby on Railsを動作させるための手順。

公開URL、インストール場所の決定

ここでは次のような構成・設定でアクセスできるように設定する。

RedmineのURL
/redmine
DocumentRoot
/var/www/html
Redmineインストール場所
/var/www/rails/redmine

インストール場所をDocumentRoot以外の場所にすることで、直接アクセスされないようにする。

mod_fcgidのインストール

fedora-extrasリポジトリに用意されているので、/etc/yum.repos.d/fedora-extras.repoの以下の箇所を変更して、yumの設定ファイルを有効にしておく。

[extras]
enabled=1

mod_fcgidのインストール。

# yum install mod_fcgid

設定ファイルがインストールされていることを確認。

# ls /etc/httpd/conf.d/fcgid.conf 
/etc/httpd/conf.d/fcgid.conf

fcgiのインストール

fcgiのソースをダウンロードして、インストールする(Rubyバインディングのインストール時にfcgiのヘッダファイルが必要となるため)。

# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
# tar xvzf fcgi-2.4.0.tar.gz 
# cd fcgi-2.4.0
# ./configure
# make
# make install

fcgiのRubyバインディングをインストールする。

# gem install fcgi

Apache設定ファイルの修正

httpd.confに下記の内容を追記する。

# Railsアプリケーションを'production'で動作させる
DefaultInitEnv RAILS_ENV production

# mod_fcgidの動作に関する設定
<IfModule mod_fcgid.c>
    MaxProcessCount 5
    IdleTimeout 600
    IPCCommTimeout 60
    IPCConnectTimeout 30
    ProcessLifeTime 3600
</IfModule>

# Railsアプリケーションディレクトリの設定
<Directory "/var/www/rails">
    # Railsアプリケーションディレクトリの.htaccessファイルを無効にする
    AllowOverride None

    # CGIを許可する
    Options ExecCGI FollowSymLinks

    # 直接アクセス出来ないようにする
    Order deny,allow
    Deny from all

    # 拡張子.fcgiのファイルをfcgiで動作させるようハンドラを割り当てる
    <IfModule mod_fcgid.c>
        AddHandler fcgid-script .fcgi
    </IfModule>
</Directory>

# public配下を/redmineとして公開する
Alias /redmine /var/www/rails/redmine/public

# /redmineの設定
<Location "/redmine">
    # ローカルからのアクセスのみを許可する
    Order allow,deny
    Allow from 192.168.0.0/24

    # ファイル以外のリクエストをすべてdispatch.fcgiへのリクエストとして扱う
    RewriteEngine On
    RewriteBase /redmine
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</Location>

dispatch.fcgiの有効化、パーミッションの変更

mod_fcgidを用いて動作させるために、public/dispatch.fcgiを有効にする。

$ cd /var/www/rails/redmine/public
$ cp dispatch.fcgi.example dispatch.fcgi

以下の各ディレクトリについて、Apacheが書き込み出来るようにパーミッションを変更する、

$ chmod -R a+w log/
$ chmod -R a+w tmp/
$ chmod -R a+w files/

動作テスト

Apacheを再起動したあとhttp://localhost/redmine/にアクセスし、WEBrickと同じようにRedmineが表示されればOK。

参考サイト

Redmine - Overview - Redmine
RedmineのWiki。 インストール方法から使い方まで一通りのドキュメントがある
連載:Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!|gihyo.jp … 技術評論社
Redmineのインストール、初期設定について
The mod_fcgid Home Page
mod_fcgidのドキュメント(httpd.confでの設定について書かれている)
Paul’s Journal » Blog Archive » Using mod_fcgid for Ruby on Rails Applications
mod_fcgidでRuby on Railsアプリケーションを動作させるためのhttpd.confの設定(public/.htaccessを無効にし、httpd.confでRewriteRuleを設定するやり方)