Redmine 2.3.3のインストール(CentOS 6.4)


# やること
Ruby、および、Railsの実行環境を整え、Passangerを用いてApacheと連携し、
Redmineが利用できる環境を構築する。


# 前提条件
* MySQLの動作環境が整っていること
* Apacheの動作環境が整っていること

# 環境
* CentOS 6.4
* MySQL 5.6.14
* Apache 2.2.15
* Ruby 1.9.3p448
* Gem 1.8.23
* Rails 3.2.13
* Redmine 2.3.3


# 手順

## 必要なパッケージのインストール

### EPELリポジトリの登録


```shell
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
```

### 開発ツール(Cコンパイラ等)

```shell
# yum groupinstall "Development Tools"
```

### RubyとPassengerのビルドに必要なヘッダファイルなど

```shell
# yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
```

※MySQL(MySQL-devel)、および、httpd(httpd-devel)は既にインストール済みとする


### ImageMagickとヘッダファイル・日本語フォント

```shell
# yum install ImageMagick ImageMagick-devel
# yum install ipa-pgothic-fonts
```

## Rubyのインストール
※最新をバージョンを確認しておく。http://www.ruby-lang.org/ja/downloads/

### Rubyのビルド

```shell
# curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
# tar zxvf ruby-1.9.3-p448.tar.gz
# cd ruby-1.9.3-p448
# ./configure --disable-install-doc
# make
# make install
```

インストール後の確認

```
# ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]

# gem -v
/usr/local/lib/ruby/1.9.1/yaml.rb:84:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
1.8.23
```

### bundlerのインストール 

```shell
# gem install bundler --no-rdoc --no-ri
```


### データベースの作成
データベース、および、ユーザを設定。  
この設定は後の手順でRedmineの設定ファイルに記述する。

```sql
# mysql -uroot -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by 'password';
mysql> flush privileges;
mysql> exit
```


## Redmineのインストール

### アーカイブの取得と配置
ここでは配置先を/var/lib/redmineとする。

```shell
# wget http://rubyforge.org/frs/download.php/77138/redmine-2.3.3.tar.gz
# tar zxvf redmine-2.3.3.tar.gz
# mv redmine-2.3.3 /var/lib/redmine
```

### データベースへの接続設定
ひな形を元にdatabase.ymlを作成し、下記の通り接続情報を記入する。

```shell
# cd /var/lib/redmine
# cp -p config/database.yml.example config/database.yml
```

(pathToRedmineApp/config/database.yml)

```yml
production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: "password"
  encoding: utf8
```

### 設定ファイル config/configuration.yml の作成
※Redmineからメールサーバへ接続するための設定等を行うがここでは省略。必要な場合は設定する。

### Gemパッケージのインストール
※Redmineのインストールディレクトリ配下で実行する。

```shell
# bundle install --without development test
```

### MySQL2パッケージのインストール

```shell
# gem install mysql2 -v '0.3.13' -- --with-mysql-config=/usr/bin/mysql_config
```


### Redmineの初期設定とデータベースのテーブル作成

```shell
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
```

## ApacheとPassangerの設定

### Passengerのインストール

```shell
# gem install passenger --no-rdoc --no-ri
# passenger-install-apache2-module
```

インストール後、下記コマンドの出力結果を控えておく。

```shell
# passenger-install-apache2-module --snippet
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.20/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.20
PassengerDefaultRuby /usr/local/bin/ruby
```

### ApacheとPassangerを連携する設定
下記の内容で/etc/httpd/conf.d/passenger.confを作成する。  
※先頭の3行は、先ほどの手順で控えておいた内容を記載する。

(/etc/httpd/conf.d/passenger.conf)

```shell
# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
# 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.20/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.20
PassengerDefaultRuby /usr/local/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のチューニングのための設定を追加（任意）。
# 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)をご覧ください。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

```

### Apache上のPassengerでRedmineを実行するための設定
下記、3パターンあるが、ここでは「パターン2」を手順を利用。

* パターン1: webサーバをRedmine専用として使用
* パターン2: サブディレクトリでRedmineを実行
* パターン3: バーチャルホストでRedmineを実行


パーミッションの設定

```shell
# chown -R apache:apache /var/lib/redmine
```

シンボリックリンクの作成

```shell
# ln -s /var/lib/redmine/public /var/www/html/redmine
```

Apacheへの設定追加  
/etc/httpd/conf.d/passenger.confへ下記を追記する。

```shell
RackBaseURI /redmine
```

Apacheの再起動

```shell
# service httpd configtest
# service httpd graceful

```

## 動作確認
下記にアクセスして、Redmineのログインページが表示されること。

※ログイン：admin/admin

```
http://hostName/redmine/
```
ログイン後、「管理」からデフォルト設定をロードして完了。


> [Redmine 2.3をCentOS 6.4にインストールする手順 | Redmine.JP Blog](http://blog.redmine.jp/articles/2_3/installation_centos/)