VagrantのCentOS6.5にRedmineをインストールする


#前提環境
| ソフトウェア | バージョン |
|:-----------|------------:|
| MacOS | 10.9.2 |
| Vagrant | 1.4.3 |
| VirtualBox |4.3.4 |

#今からインストールするもの
| ソフトウェア | バージョン |
|:-----------|------------:|
| MySQL | 5.1.73 |
| Apache | 2.2.15 |
| Passenger | 4.0.41 |
| rbenv | 0.4.0 |
| Ruby | 2.0.0 |





#基本
[Redmine 2.5をCentOS 6.5にインストールする手順](http://blog.redmine.jp/articles/2_5/installation_centos/)

上記リンクを実行していきます。
いくつか変えたり、Vagrantだからなのか、ちょっとエラー出たりとかあったので、一応全部たどってみます。

[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)のままインストールするとMySQLとかもわりと古いものが入りますが、
動かないとなんですので、[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)に沿った手順でインストールしました。


#Mac上での作業
##CentOS6.5のBoxを追加する
```
vagrant box add centOS65Box https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
```

##追加の確認
```
$ vagrant box list
centOS65Box (virtualbox)
```

##Vagrant初期化
任意のディレクトリで以下のコマンド

ここでは

```
~/Documents/VagrantVM/redmineVM
```
ディレクトリで、

```
$ vagrant init
```
します。

VagrantFileができていれば、OK

```
$ ls -la
total 16
drwxr-xr-x  3 teru1  staff   102  5  1 13:30 ./
drwxr-xr-x  9 teru1  staff   306  5  1 13:17 ../
-rw-r--r--  1 teru1  staff  4606  5  1 13:30 Vagrantfile
```



##VagrantFile編集
以下のように設定を変更（自分でbox addした時につけた名前です）

```
#config.vm.box = "base"
config.vm.box = "centOS65Box"
```

以下のようにコメントをはずします

``` 
#config.vm.network :private_network, ip: "192.168.33.10"
↓
config.vm.network :private_network, ip: "192.168.33.10"
```

##VM起動&ログイン
```
vagrant up
```
```
vagrant ssh
```
```
$ uname -a
Linux vagrant-centos65.vagrantup.com 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
```

#ログイン後VM環境での作業
##selinux設定
[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)では
>エディタで /etc/sysconfig/selinux を開き、 SELINUX の値を disabled に編集してください。

とありますが、もうdisabledになっていたので、そのままとします。


##OS言語設定
/etc/sysconfig/i18nファイルを開き、以下のように設定する

```shell:/etc/sysconfig/i18n
LANG=”ja_JP.UTF-8”
SUPPORTED=”ja_JP.UTF-8:ja_JP:ja”
```

##Vimインストール
Vim使いたいのでインストールします。

```
sudo yum install vim
```
ホームディレクトリに.vimrcを作成し以下の内容を追加

```
:set encoding=utf-8
```

##iptablesの設定
[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)では/etc/sysconfig/iptablesの設定と再起動をしています。今回のBoxからインストールした環境では/etc/sysconfig/iptablesも存在せず、iptablesの設定がなされていないようなので、とりあえず、練習なので、このまま何もしません。もちろん運用する場合は<b>そのまま運用など断じてしないでください</b>。きちんと設定する必要があります。


##EPELリポジトリの登録
http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html

↑こちらにあるパッケージのリンクURLをコピーして以下のコマンド

```
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
```
詳しくは[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)のEPELリポジトリも参照してください。

<br>
レポジトリの登録確認

```
$ yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, versionlock
Determining fastest mirrors
 * base: mirror.fairway.ne.jp
 * epel: ftp.jaist.ac.jp
 * extras: mirror.fairway.ne.jp
 * updates: centos.ustc.edu.cn
repo id                                                           repo name                                                                                                 status
base                                                              CentOS-6 - Base                                                                                            6367
epel                                                              Extra Packages for Enterprise Linux 6 - x86_64                                                            10737
extras                                                            CentOS-6 - Extras                                                                                            14
updates                                                           CentOS-6 - Updates                                                                                          864
repolist: 17982
```
これでEPELリポジトリからのパッケージインストールも可能となりました。
<br>


##いろいろインストール
###開発ツール(Cコンパイラ等)のインストール

```
sudo yum groupinstall "Development Tools"
```

###RubyとPassengerのビルドに必要なヘッダファイルなどのインストール
```
sudo yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
```

###MySQLとヘッダファイルのインストール
```
sudo yum -y install mysql-server mysql-devel
```

###Apacheとヘッダファイルのインストール
```
sudo yum -y install httpd httpd-devel
```

###ImageMagickとヘッダファイル・日本語フォントのインストール
```
sudo yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
```
この辺は[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)ままです。

##Rubyインストール
ここなんですが、rbenv使ってインストールしていきます。
[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)に沿って、ソースからやったんですが、うまく動きませんでした。
大方、私が悪いのでしょうけれども。まぁ、rbenv使って管理したほうが良いですしね。

###rbenvとRuby本体
こちらを参考にしてほぼそのままです。
[rbenv を使って ruby をインストールする(CentOS編)](http://qiita.com/inouet/items/478f4228dbbcd442bfe8)

2.1は使えないようですので、2.0.0の最新をインストールします。
[参考記事](http://qiita.com/inouet/items/478f4228dbbcd442bfe8)との差異としては、
インストールされるrbenvが少し新しいこととインストールするRubyのバージョンも新しいものにするということくらいです。
Rubyのインストールまでは全て同様に。

ruby:2.0.0-p451が最新なのでRubyのインストールから設定までは、以下のようになります。

```
$ rbenv install -v 2.0.0-p451
$ rbenv rehash
$ rbenv global 2.0.0-p451
$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]
```

###bundlerのインストール
```
gem install bundler --no-rdoc --no-ri
```
###bundlerのパス設定
ここでは.bash_profileに書き込んで、再読み込みします。

```
$ echo 'export PATH="$HOME/.gem/ruby/2.0.0/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ bundle -v
Bundler version 1.6.2
```

##MySQLの設定

[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)そのままですので、省略します。
sudoつけてやらないといけないコマンドはsudoつけて実行してください。




##Redmineのインストール
ようやく本体です。

###本体インストール
以下から最新の安定版をダウンロード
http://www.redmine.org/projects/redmine/wiki/Download

ここでは、今日現在（2014年5月2日）2.5.1です。

ここではHomeディレクトリ（/home/vagrant)にダウンロード

```
curl -O http://www.redmine.org/releases/redmine-2.5.1.tar.gz
```
ダウンロード確認

```
$ ls
redmine-2.5.1.tar.gz
```
展開

```
tar xvf redmine-2.5.1.tar.gz
```

アプリケーションの配置（/var/lib/redmineへ配置）

```
sudo mv redmine-2.5.1 /var/lib/redmine
```

###データベースへの接続設定
/var/lib/redmine/configにdatabase.ymlというファイルを作成し、以下のように設定します。

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

passwordはMySQL設定で指定したものを書きます


###設定ファイルの作成（configuration.yml の設定）

[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)
基本的にこちらの参照先サイトではmail設定をしてます。
mailサーバたててこの設定することで、Redmineからメールが送れるようです。

ここでは簡易的にgoogleのサービスを使ってやってみます。
↓参考
[Redmineを設定する](http://d.hatena.ne.jp/oraora7/20130716)

/var/lib/redmine/configにconfiguration.ymlを作成
以下のように設定

```configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "************"
      password: "************"

rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
```

###Gemパッケージのインストール
/var/lib/redmine（Redmineインストールディレクトリ）で

```
bundle install --without development test
```
###Redmineの初期設定とデータベースのテーブル作成
/var/lib/redmine（Redmineインストールディレクトリ）で

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

##Passengerのインストール
[Passenger](https://www.phusionpassenger.com/index2)これです。

```
gem install passenger --no-rdoc --no-ri
```

###PassengerのApache用モジュールのインストール

```
passenger-install-apache2-module
```
対話形式になります

```
Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

   ⬢  Ruby
   ⬡  Python
   ⬡  Node.js
 ‣ ⬡  Meteor
```
今回はRubyだけ選択して、Enter

```
Warning: some directories may be inaccessible by the web server!

The web server typically runs under a separate user account for security
reasons. That user must be able to access the Phusion Passenger files.
However, it appears that some directories have too strict permissions. This
may prevent the web server user from accessing Phusion Passenger files.

It is recommended that you relax permissions as follows:

  sudo chmod o+x "/home/vagrant"

Press Ctrl-C to return to the shell. (Recommended)
After relaxing permissions, re-run this installer.
  -OR-
Press Enter to continue anyway.
```
ワーニングが出たので、中断して以下のコマンドで権限与える

```
sudo chmod o+x "/home/vagrant"
```
もう一度

```
passenger-install-apache2-module
```

```
Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
https://www.phusionpassenger.com

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
```
OKのようなメッセージが出ているのでOKかと思います。


##Apacheの設定
/etc/httpd/conf.d/にpassenger.conf を作成し以下のコマンドの実行結果を記載する。

```
$ passenger-install-apache2-module --snippet
LoadModule passenger_module /home/vagrant/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.41/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /home/vagrant/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.41
  PassengerDefaultRuby /home/vagrant/.rbenv/versions/2.0.0-p451/bin/ruby
</IfModule>
```
この内容をpassenger.confに記載します。


このような感じになります。

```
# ここにpassenger-install-apache2-module --snippetの結果を設定します
LoadModule passenger_module /home/vagrant/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.41/buildout/apache2/mod_passenger.so
PassengerRoot /home/vagrant/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.41
PassengerDefaultRuby /home/vagrant/.rbenv/versions/2.0.0-p451/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起動＆自動起動設定

```
sudo service httpd start
sudo chkconfig httpd on
```

起動確認

```
$ ps aux | grep httpd
root      8046  0.2  0.7 186572  4440 ?        Ss   08:49   0:00 /usr/sbin/httpd
apache    8066  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8067  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8068  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8069  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8070  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8071  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8072  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
apache    8073  0.0  0.4 186704  2664 ?        S    08:49   0:00 /usr/sbin/httpd
vagrant   8086  0.0  0.1   8360   752 pts/0    S+   08:50   0:00 grep httpd

```


##Redmine実行設定
/var/lib/redmineの所有者を変更

```
sudo chown -R apache:apache /var/lib/redmine
```

[参考記事](http://blog.redmine.jp/articles/2_5/installation_centos/)
では、3パターンが紹介されています
ここではパターン２で設定します

```
sudo ln -s /var/lib/redmine/public /var/www/html/redmine
```

/etc/httpd/conf.d/passenger.confに以下を追加

```passenger.conf
RackBaseURI /redmine
```

再起動します

```
sudo service httpd restart
```


#Macに戻って作業
Vagrant再起動

```
vagrant halt
vagrant up
```

##Redmineにアクセス
###URLアクセス
![redmine](http://f.cl.ly/items/0e3O2y3A40223e2d3a2f/2014-05-02_9_52_06.png)

###ログイン
デフォルトでadminユーザがいるので、adminでログインします
右上のログインリンクから
>ログイン：admin
>パスワード：admin

でログイン

###デフォルト設定ロード
とりあえず管理画面で

![redmine](http://f.cl.ly/items/0N3C1u2H31371L3a0q3i/2014-05-02_10_06_51.png)


###メール送信の確認
設定ファイルconfiguration.ymlで設定したgmailのアドレスを設定します。
![redmine](http://f.cl.ly/items/1z1H193U3n1O3X3j0d42/2014-05-02_10_52_13.png)


メールを送信するユーザのメールアドレス設定（ここではデフォルトのadminユーザ）
![redmine](http://f.cl.ly/items/0k0g2e1c3w2u0e2k0Q2q/2014-05-02_11_02_25.png)

テストメールを送信します
![redmine](http://f.cl.ly/items/3K3q2L150T3O2O2x162J/2014-05-02_11_04_56.png)


メールが送信されれば、OKです。

#使用方法
おいおいです

<br>