centOS6.5にrails4.2の環境構築


## 環境
centOS 6.5
ruby 2.2.2
rails 4.2.1

## yumで必要なものをインストール

最初に今回の構築で必要になるものをyumでまとめてインストールしておきます。

```bash
$ sudo yum -y update
$ sudo yum -y install git sqlite sqlite-devel httpd-devel curl-devel apr-devel apr-util-devel libffi-devel openssh openssl openssl-devel readline-devel
```

## mysqlをインストール

railsはsqlite3を初期状態では使用するため、なくてもいいですが本番環境の時のためにインストールしておきます。

```bash
$ sudo yum install -y mysql mysql-server mysql-devel
$ sudo chkconfig --level 35 mysqld on
$ sudo service mysqld start
```

インストールの確認をします。

```bash
$ mysql --version
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
```

## rbenvをインストール

rubyを複数バージョンインストールできるrbenvをインストールします。
anyenvがすでに入っている方は`anyenv install rbenv`で大丈夫です。

```bash
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
```

インストールの確認をします。

```bash
$ rbenv -v
rbenv 0.4.0-148-g5b9e4f0
```

## rbenvのプラグインをインストール

rubyのビルドに必要なruby-buildをインストールします

```bash
$ mkdir ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```

必要な人は下記プラグインも入れてください

- rbenv-gem-rehash

	gemインストール時に必要な`rbenv rehash`を自動で実行してくれます。
	
```bash
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/ruby-gem-rehash
```
	
- rbenv-update

	`rbenv update`コマンド実行時にrbenvのプラグインもアップデートしてくれます。
	
```bash
$ git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
```

## rubyをインストール

```bash
$ rbenv install 2.2.2
$ rbenv global 2.2.2
```

インストールの確認をします。

```bash
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
```

## railsをインストール

```bash
$ gem install rails --no-ri --no-doc
```

インストールの確認をします。

```bash
$ rails -v
Rails 4.2.1
```

## railsプロジェクトを作成する

`rails new`コマンドで新規プロジェクトを作成します。

`-d mysql`オプションでデフォルトでmysqlを利用する設定でプロジェクトを作成します。sqliteでいい方はこのオプションは必要ありません。

```bash
$ rails new tutorial -d mysql
```

mysqlを使っている場合はrakeコマンドでデータベースを作成します

```bash
$ rake db:create
```

WEBrickでサーバーを起動してみます。

```bash
$ cd tutorial
$ rails s
=> Booting WEBrick
=> Rails 4.2.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-05-07 04:32:46] INFO  WEBrick 1.3.1
[2015-05-07 04:32:46] INFO  ruby 2.2.2 (2015-04-13) [x86_64-linux]
[2015-05-07 04:32:46] INFO  WEBrick::HTTPServer#start: pid=3906 port=3000
```

ブラウザで`localhost:3000`にアクセスしてみましょう。
![rails](http://i.gyazo.com/141a3b1d212bc6f863bd5cbf88d73e3d.png)

### ExecJS::RuntimeUnavailableエラーが出てしまった場合

```bash
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
```

上記のようなエラーが出た場合は、therubyracerを使うようにGemfileを書き換えます。

```bash
$ cd tutorial
$ vi Gemfile
```

15行目のコメントを外してtherubyracerを有効にします。

```Gemfile
gem 'therubyracer', platforms: :ruby
```

gemをインストールします。

```bash
$ bundle install
```

### Sorry, you can't use byebug without Readline.エラーが出てしまった場合

```bash
Sorry, you can't use byebug without Readline. To solve this, you need to
rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
install libreadline-dev` and then reinstall your Ruby.
```

上記のようなエラーが出た場合は、readlineを使うようにGemfileを書き換えます。

```bash
$ cd tutorial
$ vi Gemfile
```

行末にrb-readlineを追加します。

```Gemfile
gem 'rb-readline'
```

gemをインストールします。

```bash
$ bundle install
```

### vagrant上でrails serverを起動してページが開けない場合

rails serverコマンド時に-bオプションでipアドレスを指定してあげましょう。

```bash
$ rails s -b 0.0.0.0
```