2011年04月07日

Redmineのインストール

これまで trac を使っていたが、Redmine を使ってみることにした。
以下、インストールメモ。
Ver.2.x のインストールメモは「Redmineのインストール (Ver.2.x)」を参照

インストールした環境は、Fedora 14。
インストールした Redmine のバージョンは 1.1.2。

Redmine.JP に掲載されているインストール手順を参考に作業した。
http://redmine.jp/guide/RedmineInstall/

(1) 必要なツール類のインストール
Ruby, Rails, Rack のバージョンは、記載されているバージョンと完全に一致していないといけないようだ。

Fedora 14 のパッケージは、Rails と Rack のバージョンが一致しなかった。
今回、Redmine の公式リリース版をダウンロードしたが、Rails は Redmine のファイル一式に含まれていたが、Rack は含まれていなかったので必要なバージョンを gem でインストールした。
gem install rack -v=1.0.1

(2) Redmine 用アカウント作成

Redmine 用アカウント redmine を作成。

# useradd redmine

(3) データベースの準備

データベースは、今回は PostgreSQL を使用した (使い慣れているので)。

Redmine 用のロールとデータベースを作成する。

CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'パスワード' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;


そして、redmine をインストールするサーバーからのアクセスを許可させる。
同一ホストであっても、ローカルからのアクセスが ident メソッドのみになっている場合は、自IPアドレスから password メソッドでの host アクセスを許可させておく (/var/lib/pgsql/data/pg_hba.conf および /var/lib/pgsql/data/postgresql.conf を設定)。

(4) ダウンロード

以下のサイトから、Redmine のファイルをダウンロード。
http://www.redmine.jp/download/

レポジトリからチェックアウトもできるが、上述のとおり Rails の必要バージョンが含まれているという理由から、tar ファイルをダウンロードした。

tar ファイルを適当なところ (たとえば /usr/local の下とか) に解凍し、オーナーを redmine にする (←オーナー変更は必要なかったかも)。

# chown -R redmine: redmine-1.1.2

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

redmine アカウントでログインし、解凍したディレクトリ (たとえば、/usr/local/redmine-1.1.2。以下、Redmine ディレクトリと呼ぶ) に移動し、以下のコマンドを実行する。

# rake config/initializers/session_store.rb

(6) テーブル作成

解凍ファイルの中にある config/database.yml.exampleconfig/database.yml にコピーし、production: のところの内容を変更する。
production:
  adapter: postgresql
  database: redmine
  host: IPアドレスかホスト名
  username: redmine
  password: "redmine ロールのパスワード"


そして、Redmine ディレクトリで、以下のコマンドを実行:

rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"

redmine データベース内にテーブル等が作られる。

(7) 動作確認

以下のコマンドを実行してWebサーバーを起動:

# ruby script/server webrick -e production

http://localhost:3000/ にアクセスして Welcome 画面が表示されるか確認する。

(8) Passenger (mod_rails) を導入

Redmin.JP サイトに webrick は「開発用」なので「動作確認以外には使用するな」という脅し文句が書かれているので、Passenger をインストールしてみる。
まずは、必要なパッケージをインストール。
# yum install rubygem-fastthread
# yum install rubygem-daemons

場合によってはほかのパッケージが必要かもしれない。
Passenger 自体は rpm が用意されていなかったので、gem でインストール。
# gem install passenger
Passenger Apache 2モジュールのインストーラーを実行。
# passenger-install-apache2-module
ところが、なぜか
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/platform_info/apache.rb:277:in `_unmemoized_apr_config_needed_for_building_apache_modules?': undefined local variable or method `test_exe_outdir' for PhusionPassenger::PlatformInfo:Module (NameError)
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/platform_info.rb:92:in `apr_config_needed_for_building_apache_modules?'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:69:in `dependencies'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/abstract_installer.rb:166:in `check_dependencies'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:90:in `install!'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/abstract_installer.rb:63:in `start'
        from /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/bin/passenger-install-apache2-module:236
        from /usr/bin/passenger-install-apache2-module:19:in `load'
        from /usr/bin/passenger-install-apache2-module:19

とかいうエラーが出てうまくいかない。
これはどうやら、typoらしい。
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/lib/phusion_passenger/platform_info/apache.rb を開き、"test_exe_outdir" を "tmpexedir" に変更してリトライ。
不足しているソフトウェアを提示してくれる (しかも、実行すべき yum コマンドまで教えてくれる!) ので、インストール後再実行。
起動できた。

(9) Apache 設定

Apache に Passenger の設定を追加。
たとえば、/etc/httpd/conf.d/passenger.conf を作成して、passenger-install-apache2-module 実行時に表示された設定を記載する。
今回の環境では以下のとおり:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.6
PassengerRuby /usr/bin/ruby


次に、Redmine の設定を行う。
ポート 20080 にアクセスするとRedmineが表示されるようにVirtualHost設定することにした。
たとえば /etc/httpd/conf.d/redmine.conf に記載する。
今回の環境では以下のようにする:
Listen 20080
NameVirtualHost *:20080
<VirtualHost *:20080>
    ServerAdmin webmaster@aaa.bbb.ccc
    DocumentRoot /usr/local/redmine-1.1.2/public
    CustomLog /var/www/vhosts/logs/redmine_ssl_access-log combined
    LogLevel warn
    ErrorLog /var/www/vhosts/logs/redmine_ssl_error-log
</VirtualHost>

そして、Redmine ディレクトリのオーナーを apache:apache に変更する。
今回の環境では:
# chown -R apache: /usr/local/redmine-1.1.2

Apacheを再起動すると、http://localhost:20080/ でアクセスできる。

(10) メール送信設定

プロジェクトで発生したイベントをメールで送信するようにするには、Redmine ディレクトリの config/email.yml.exampleconfig/email.yml にコピーし、設定変更する。
たとえば localhost を SMTP サーバーにするには、production: のところを
production:
  delivery_method: :smtp
  smtp_settings:
    address: localhost
    port: 25
    domain: メールドメイン名

のように設定する。
タグ:redmine
posted by K/I at 21:20 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする