CentOS6へのredmineインストール


---

基本的には以下のブログを参考に、環境によってインストールしている。

[http://blog.redmine.jp/tags/インストール・設定/](http://blog.redmine.jp/tags/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E8%A8%AD%E5%AE%9A/)


以下は自分用のメモ。

## 更新情報
* 2015/10/11 いろいろアップデートしたので対応

# 環境

| 項目 | 内容（バージョン/パス等） |内容（バージョン/パス等）|
|:--|:--|:--|
| Cent OS | 6.5 | 同左 |
| redmine | 2.5.1.stable | 2.5.2.stable |
| ruby | 2.0.0-p481 | 同左 |
| gem | 2.3.0 | 2.4.1 |
| rails | 3.2.17 | 3.2.19 |
| environment | production | 同左 |
| Database adapter | Mysql2 | 同左 |
| アプリディレクトリ | /usr/local/app/redmine-x.x.x | 同左 |
| 作業用ディレクトリ | /usr/local/src | 同左 |
| httpdサブディレクトリ | /var/www/html/redmine ※シンボリックリンク| 同左 |
| URL | http://[hostname]/redmine | 同左 |

---

# インストール手順

## 0. ネットワーク関連
iptables、ip6tables、selinuxなどは必要に応じて設定。

## 1. yumパッケージ

### 1.1. パッケージインストール

```
# yum install gcc gcc-c++
# yum install httpd httpd-devel
# yum install mysql-server mysql-devel
# yum install openssl-devel readline-devel zlib-devel curl-devel 
```

### 1.2. epelパッケージインストール

```
epelリポジトリ追加
# yum install epel-release
```

```
# yum install libyaml libyaml-devel --enablerepo=epel
# yum install nodejs npm --enablerepo=epel
```

## 3. ruby

### 3.1. rubyインストール
実際はrbenvやruby-build使うかもしれませんが割愛。

```
以下からrubyソースパッケージをダウンロード
https://www.ruby-lang.org/ja/downloads/

ビルド＆インストール
# tar zxvf ruby-2.0.0-p481.tar.gz 
# cd ruby-2.0.0-p481
# ./configure --disable-install-doc
# make
# make install

確認
# ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux]
```

### 3.2. gemパッケージインストール
```
gemを最新版に更新
# gem update --system --no-rdoc --no-ri
# gem -v
2.3.0

bundlerインストール
# gem install bundler --no-rdoc --no-ri

passenger関連gemインストール
# gem install daemon_controller rack passenger --no-rdoc --no-ri

インストールされたgemパッケージ確認
# gem list
bigdecimal (1.2.0)
bundler (1.6.2)
daemon_controller (1.2.0)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
passenger (4.0.45)
psych (2.0.0)
rack (1.5.2)
rake (0.9.6)
rdoc (4.0.0)
rubygems-update (2.3.0)
test-unit (2.0.0.0)
```

## 4. mysql

### 4.1. my.cnfにutf8の設定を追加
```/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8
```

### 4.2. mysqlサービス設定
```
起動
# service mysqld start

自動起動設定
# chkconfig mysqld on

セキュリティ設定（rootパスワード他）
# mysql_secure_installation

DB、ユーザー作成
# mysql -u root -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine@localhost identified by '********';
mysql> flush privileges;
mysql> exit
```

## 5. redmine

### 5.1. redmineリソース配置

```
以下から最新のredmineを取得する
http://www.redmine.org/projects/redmine/wiki/Download
redmine-2.5.1.tar.gz

配置する
# tar zxvf redmine-2.5.1.tar.gz
# mv redmine-2.5.1 /usr/local/app/redmine-2.5.1
```

### 5.2. redmineビルド（bundlerを使用）

#### 5.2.1. redmine配置先に移動

```
# cd /usr/local/app/redmine-2.5.1
```

#### 5.2.2. database.ymlを作成

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

#### 5.2.3. bundleインストール（インターネット上の最新リソースを参照）


"vendor/bundle"にgemパッケージ等をインストールする
対象はproduction環境のみ、rmagickも除く

```
# bundle install --without development test rmagick --path vendor/bundle
```

#### 5.2.4. redmineのビルド

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

## 6. passengerとhttpdの設定

### 6.1. httpdモジュールインストール
```
インストール
# passenger-install-apache2-module
```

### 6.2. passenger用conf設定
```/etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.45
     PassengerDefaultRuby /usr/local/bin/ruby
   </IfModule>

# 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"

PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

# DocumentRootのサブディレクトリで実行する設定
RackBaseURI /redmine
```

### 6.3. シンボリックリンク作成
```
# ln -s /usr/local/app/redmine-2.5.1/public /var/www/html/redmine
```

### 6.4. 権限設定
```
# chown -R apache:apache /var/www/html/redmine
# chown -R apache:apache /usr/local/app/redmine-2.5.1
```

### 6.5. httpdサービス起動 or 再起動
```
httpdサービス自動起動有効化
# chkconfig httpd on

httpdサービス起動
# service httpd configtest
# service httpd start

またはhttpdサービスの再起動
# service httpd configtest
# service httpd graceful
```