RedMine-1.2.0をインストールする

CentOS5.6+RedMine-1.2.0をインストールしたときのメモ
httpd+mysql+passengerを使って、サブディレクトリ(例:http://hoge.jp/redmine)のようにアクセスできるようにするまとめ


前回、redmine を入れる時にはまった点 - プログラム備忘録とは、
別の手法でインストールしたので、今回はそのまとめです。

1.yumで必要なもの

# yum install openssl-devel readline-devel zlib-devel curl-devel
# yum install mysql-server mysql-devel
# yum install httpd httpd-devel

2.Ruby Enterprise Editionのダウンロード

Ruby Enterprise EditionはRuby 1.8.7をベースに変更を加えたもので、オリジナルのRubyと比較すると、
Passenger上でRuby on Railsアプリケーションを実行する際にメモリ使用量を減らせるというメリットがあります。

Redmine 1.1をCentOS5.5にインストールする手順 | Redmine.JP Blog

らしいので、こいつをインストールします。


途中、インストールする場所を聞かれるので、「/usr/local/」にインストールするように設定しました。

# wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz
# tar zxvf ruby-enterprise-1.8.7-2011.03.tar.gz
# ./ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs
...
[/opt/ruby-enterprise-1.8.7-2011.03] : /usr/local/
...

3.gemでインストール

基本従来RedMineの設定でいいんですが、rackのバージョン指定だけ違うみたいです。
1.0.1ではなく、1.1.0に指定しないとあとで怒られます。

# gem update --system 1.4.2
# gem --version
# gem install rdoc
# gem install rake
# gem install rack -v=1.1.0
# gem install i18n -v=0.4.2
# gem install mysql
# gem install passenger

4.MySQLの設定

文字コードがUTF8じゃないと後々面倒になるので注意。
なので、その辺の設定をします。

  • /etc/my.cnf
[mysqld]
#追加
skip-character-set-client-handshake
default-character-set = utf8

[mysql]
#追加
default-character-set = utf8

[client]
#追加
default-character-set = utf8


設定できたら、起動しましょう。
ついでに、自動起動するようにもしちゃいましょう。

# service mysqld start
# chkconfig mysqld on


/etc/my.cnfが設定されてるか確認します。

# mysql -uroot
mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+

MySQLのシステム変数

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_results
  • character_set_server
  • character_set_system

の値がutf8になっていることを確認します。
なってない場合は、設定を見直し+mysqldの再起動を行います。


次にrootにパスワードつける、空ユーザの削除。

# mysql -uroot
mysql> use mysql;
mysql> update user set password=password('fizzbuzz') where user = 'root';
mysql> delete from user where user = '';
mysql> flush privileges;
mysql> exit;


そして、RedMineで使うためのDBを準備します。

# mysql -uroot -p
mysql> create database redmine default character set utf8;
mysql> grant all on redmine.* to hoge identified by 'fuga';
mysql> flush privileges;
mysql> exit;

ここでは、

DB名 redmine
ユーザ名 hoge
Password fuga

と設定します。

5.RedMine1.2.0をダウンロード

RedMine1.2.0を落としてきます。
最新版が欲しいのであれば、こちらまでどうぞ→RubyForge: Redmine: Project Filelist
ダウンロードしたら、解凍し「/var/lib/」にディレクトリごと移動させます。
さらに、作業ディレクトリを「/var/lib/redmine-1.2.0」へ移動。

# wget http://rubyforge.org/frs/download.php/74944/redmine-1.2.0.tar.gz
# tar zxvf redmine-1.2.0.tar.gz
# mv redmine-1.2.0 /var/lib/
# cd /var/lib/redmine-1.2.0

6.各種設定

データベースの設定をやります。

  • /var/lib/redmine-1.2.0/config/database.yml
production:
  adapter: mysql
  database: redmine
  username: hoge
  password: fuga
  host: localhost
  encoding: utf8'

viなり、echoとリダイレクトなりを使って、「$REDMINE_ROOT/config/database.yml」に書く。
本当はメールとかの設定も書かなきゃなんだけど、書かなくても動く。
詳しくは後述の参考ページに割愛。
注意は1.1.3は「$REDMINE_ROOT/config/email.yml」だったのが、
「$REDMINE_ROOT/config/configration.yml」に記述すること。
「email.yml」でも動くらしいけど、今後のことを考えると郷に従いましょう。

7.セッションデータ暗号化用鍵の生成とテーブル作成

# rake generate_session_store
# rake db:migrate RAILS_ENV="production"


実行結果に、

rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
WARNING: 'task :t, arg, :needs => [deps]' is deprecated.  Please use 'task :t, [args] => [deps]' instead.
    at /var/lib/redmine-1.2.0/lib/tasks/email.rake:170

と出ますが、

That isn’t a error! Only a warning that redmine uses functions which are not supported in future ruby/rails versions…
You can ignore these warnings!

Tutorial: Redmine with Git and Gitosis on Ubuntu 11.04 - x2on.de

らしいので無視してもOK

8.デフォルトデータのロード

# rake redmine:load_default_data RAILS_ENV="production"
Select language: bg, bs, ca, cs, da, de, el, en, en-GB,
 es, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko,
 lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk,
 sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja # ←入力


ここで、

Error: imcompatible implicit declaration

とかで終わってる場合、DBのエンコードがUTF8じゃない可能性があります。
最初にEUC-JPでインストールしてて見事に嵌りました

9.Passengerの設定

# export APXS2=/usr/sbin/apxs
# passenger-install-apache2-module

を実行。apxsの場所がわからない場合、

# updatedb
# locate apxs

とかやると、場所がわかります。


ビルド最中に出てくる、

--------------------------------------------
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
   PassengerRuby /usr/local/bin/ruby

は、メモっときましょう。

10.httpd(Apache)の設定

RailsBaseURIに「http:/hoge.jp/」のどこのサブディレクトリをRails動かしたいか指定します。
また、先ほどメモったLoadModule、PassengerRoot、PassengerRubyを書きます。

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby

RailsBaseURI /redmine


次にDocumentRootが「/var/www/html」に設定されてる場合、シンボリックリンクを作ります。

# ln -s /var/lib/redmine-1.2.0/public /var/www/html/redmine


設定できたら、httpdを再起動します。

# service httpd restart


これで、http://hoge.jp/redmineで、RedMineのトップページが表示されれば設置完了です。
この後は適宜メールの設定、日本語の設定などを行ってください。