WindowsでRailsの開発環境構築まで


ローカル環境でRails開発環境を作るための手順をまとめました  
あくまで参考サイト様の情報をもとに自分の作業内容をコピペでまとめたものですので、正確な情報は参考サイト様へ。。

# 設定する内容
* パソコンのOS：Windows 10
* インストールするOS：Ubuntu
* SQL：PostgreSQL

# 手順
1. Vagrantインストール
2. VirtualBoxインストール
3. LinuxOSの仮想環境構築(今回はUbuntu)
4. PuTTyで仮想マシンに接続
5. CyberDuckで仮想マシンの構造を確認
6. Gitインストール(Ruby/Railsインストール用)
7. Rubyインストール
8. SQLインストール(今回はPostgre-SQL)
9. Node.jsインストール
10. Ruby on Railsインストール
11. Railsでアプリケーション作成

# Vagrantインストール

Vagrant：仮想マシンの管理ができるツール  

[https://www.vagrantup.com/downloads.html]

インストール後、コマンドプロンプトで

```
vagrant -v
```

でバージョンが表示されればOK  
場所はどこからでも実行できます

# VirtualBoxインストール

VirtualBox：仮想マシンの構築ができるツール

[https://www.virtualbox.org/wiki/Downloads]

# LinuxOSの仮想環境構築

今回はUbuntuを採用しています

コマンドプロンプトにてC直下にVagrant専用フォルダを作成し、その中に仮想マシン用のフォルダを作成して移動します

```
mkdir C:\Vagrant & cd C:\Vagrant
mkdir ubuntu64 & cd ubuntu64
```

## Vagrant初期化

ここでBoxを追加しUbuntuOSで初期化します  
Boxは[https://atlas.hashicorp.com/boxes/search:title]で検索します

```
vagrant box add ubuntu/trusty64
vagrant init ubuntu/trusty64
```

## Vagrantfileを編集

作成されたVagrantfileをテキストエディタで編集し、↓のコメントアウトを外します

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

```

## 仮想マシン起動

これでバックグラウンドで仮想マシンが起動します

```
vagrant up
```

# PuTTyで仮想マシンに接続

PuTTyは仮想マシンにSSH接続するためのツールです(要はコマンドラインです)  
ここのPackage filesの64bitMSIをインストールします

[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html:title]

* 接続先ホスト名：192.168.33.10
* 接続先ポート：22
* ユーザ：vagrant
* パスワード：vagrant

接続するとvagrant@vagrant-ubuntu-trusty-64:$というところに出ます

# CyberDuckで仮想マシンの構造を確認

CyberDuckは仮想マシン用のエクスプローラみたいなものです

[https://cyberduck.io/index.ja.html?l=ja]

## 環境設定
編集>環境設定で接続の設定をします

* ブラウザタブ
  * '.'で始まるファイルを表示にチェック
  * ダブルクリックしたファイルを外部エディタで開くにチェック
* 外部エディタタブ
  * Atomを指定　c:/user/username/appdata/local/atom/bin/atom.cmd
  * [https://atom.io/:title]はエディタです
  * 一度CyberDuckを終了する
* 接続設定
  * プロトコル：SFTP
  * 接続サーバ・ユーザなどはvagrantと同じ


ここから先はPuTTyでの作業です

# Gitインストール(Ruby/Railsインストール用)

## OSのアップデート

```
sudo apt-get update
sudo apt-get upgrade
```

## Gitインストール

最新版だった2.14.1をインストール

```
sudo apt-get install -y libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
cd
wget https://www.kernel.org/pub/software/scm/git/git-2.14.1.tar.gz
tar -zxf git-2.14.1.tar.gz
cd git-2.14.1
make prefix=/usr/local all
sudo make prefix=/usr/local install

```

```
git --version
```

でバージョンが出ればOK

# Rubyインストール

バージョン管理用のRbenv経由でインストールします

## GitからRbenvインストール

```
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo $SHELL
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
which rbenv
```

```
rbenv --list
```

でインストールするRubyのバージョンを確認します  
(普通に公式サイトで安定板バージョンを確認しても良い）

## Rubyインストール

今回は安定板の2.4.1をインストール  
標準の指定バージョンも2.4.1にしておく

```
rbenv install 2.4.1
rbenv versions
rbenv global 2.4.1
rbenv rehash
rbenv version
which ruby
ruby -v
```

# SQLインストール(今回はPostgre-SQL)

## PostgreSQLインストール

```
$ sudo apt-get install PostgreSQL
$ /etc/init.d/postgresql status
```

## SQLを起動してプロジェクトのロールを準備

```
sudo -u postgres psql
```

```
postgres=# create role projectname with createdb login password 'password';
postgres=# \q
```

# Node.jsインストール

JavaScriptのエンジンが必要なのでNode.jsをインストールします  
昔はtherubyracerというジェムが一般的でしたが、v8のエンジンのバージョン関係でインストール時にこけるのでNode.jsをインストールしましょう

```
$ sudo apt-get install nodejs
```

# Ruby on Railsインストール

```
gem install rails
which rails
rails -v
```

# Railsでアプリケーション作成

標準はSQLLiteなのでちょっとだけ面倒です

## PostgreSQLを指定します

```
$ rails new projectname -TB --database=postgresql
$ cd projectname
```

## 依存関係をインストールしてgemのインストール

```
$ sudo apt-get install libpq-dev
$ bundle install --path vendor/bundle
```

## PostgreSQLのロールを関連付ける  

config/database.ymlを編集

```
default:
  adapter: postgresql
  encoding: unicode
  pool: 5
  # 以下の3つを追加
  username: projectname
  password: password
  # RailsサーバとPostgreSQLサーバが同じ場合
  host: localhost
development:
  <<: *default
  database: projectname_development
test:
  <<: *default
  database: projectname_test
```

## マイグレーション

```
$ rails db:migrate
$ rails db:serup
```

## データベースを使ってみる

```
$ rails g scaffold Post title:string body:text
$ rails db:migrate
$ rails s
```

## サーバ起動

```
rails server -b 192.168.33.10 -d
```

# 参考サイト


[http://qiita.com/ozawan/items/160728f7c6b10c73b97e:title]


[http://qiita.com/mochizukikotaro/items/a707603f06017cb87ee1:title]


[http://qiita.com/torini/items/9952d91c4a7087b23481:title]


[ドットインストール](http://dotinstall.com/)


神の参考サイト様のコピペです（土下座）