Vagrant に CentOS7 と nginx を入れて Transmit で接続する

# 目的
タイトル通り Vagrant に CentOS7 を入れて nginx のサーバーを立てること.
やり方がわからなくなるときが多かったので この際まとめてみる.

# 環境
Macbook Pro (15-inch, 2016)
macOS High Sierra (10.13.5)

# 手順 - 概略
1. VirtualBox, vagrant をインストールする (今回は省略)
2. サーバー用のディレクトリを作り vagrant　の環境を作る
3. vagrant と Transmit5 とを接続する
4. nginx をインストールする

## 1. VirtualBox, vagrant をインストールする
今回は省略します.
自分の環境では Homebrew を用いて Brewfile からインストールしています.
いずれ別記事にまとめるつもりです.

## 2. サーバー用のディレクトリを作り vagrant　の環境を作る
自分はDocumentsディレクトリの下に作っています.
これどこに作るかでメリット・デメリットってあるんでしょうか？

``` terminal
$ cd ~/Documents
$ mkdir vagrant
$ mkdir vagrant/develop
$ cd vagrant/develop
$ vagrant box add centos/7
$ vagrant init centos/7
```

以上の手順でディレクトリへのインストールまでが完成します.
細かい説明はなし.
vagrant up する前に Vagrantfile の編集をします.

``` Vagrantfile
# config.vm.network "private_network", ip: "192.168.33.10" のコメントを外す
この際IPアドレスがかぶらないように自分の好きなようにIPアドレスを変えておく.

config.vm.synced_folder".", "/vagrant", disabled:true を追加する
```

これであとは立ち上げるだけです.

``` terminal
$ vagrant up
$ vagrant status
$ vagrant ssh-config
$ vagrant ssh
```

`$ vagrant status` で状態を一応確認しています.
`$ vagrant ssh-config`で　IdentityFile　の場所を確認しています.
`$ vagrant ssh`でつながればオッケーです.

## 3. vagrant と Transmit5 とを接続する
個人的に一番詰まったところです.
ユーザー : vagrant, パスワード : vagrant で入れると信じていた時期が僕にもありました.
これがなんでか僕の環境ではうまくいかないので認証鍵で入ることに決定.

1. Tranmit5 を起動 
2. `⌘ ,` で環境設定を開く
3. 認証鍵から `+` をクリックし `認証鍵を読み込む`
4. IdentityFile のパスまで移動し そこの `private_key` を選択
5. (任意) private_key　で名前が登録されるので この名前を変更するもOK
6. 新規サーバを追加し Transmit5 から接続できればOK

僕の環境だと今はこれでうまく行ったけど
次回クリーンインストールしたあととかこれでうまくいくのかなあ……

## 4. nginx をインストールする

nginxをインストールします.
Apacheでもいいと思うんですけど 大した理由もなくnginxを使ってみたいっていうミーハーなんです.
ミーハーでさえない？　そうですか……
詳しい違いについては下の参考に記載しておきますのでよくわからない人は一読しておくといいと思います.
僕もよくわかってないです. では実際の手順を.

``` terminal
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ sudo vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

を追記
```
なぜか僕の環境だとこれが元からあったんですけど (rpm使って入れてるし)
今の環境の前でやったときにはなぜかなかったので一応確認しておきます.

``` terminal
$ echo export LC_ALL=C >> ~/.bash_profile
$ source ~/.bash_profile
$ sudo yum install nginx -y
$ nginx -v
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx
```

ここまでやって Vagrantfile で設定したIPアドレスにアクセスします.
Welcome to nginx! が表示されれば一旦完成です.
お疲れ様でした.

# 次回予告
PHP, MySQL, wordpress を入れます.
パーミッションの問題に苦労してPanic公式までリプライ・メールしました.
本当にとても疲れた.

2018/07/03 15:37 追記
更新しました -> [nginx サーバーに PHP, MySQL を入れる](https://qiita.com/Dal_/items/5c937796f91dda9e63cd)

# 参考文献・サイト・資料
今回サーバーを作成するのに次の文献・サイト・資料などを参考にさせていただきました.
この場を借りて先の賢人方に多大なる感謝を申し上げます.

この先全体的にずっと参考にしています. 本当にありがとうございます.
[Vagrant + CentOS + Nginx + MySQL + WordPress](https://qiita.com/TanakanoAnchan/items/d1e86d168ffb25c043ad)

nginxのリポジトリに関してはここがわかりやすかったです.
[Nginx のインストール](https://qiita.com/silverskyvicto/items/db16512571fe9bbb930c)

とりあえず設定しているだけなのですが便利だと思うので参考にしました.
[vagrantの共有フォルダ synced_folder について](https://qiita.com/kaihei777/items/82dd6626ee7f2aecbe66)

Failed to set locale とか出てくるのでここを参考にしました.
[http://fnya.cocolog-nifty.com/blog/2018/03/centos7yum-upda.html](http://fnya.cocolog-nifty.com/blog/2018/03/centos7yum-upda.html)

nginx と Apache の違いについて書かれています.
[Nginxとは？Apacheとの違いについてエンジニアに聞いてみた](https://academy.gmocloud.com/qa/20160616/2761)

その他多くのサイトの情報を参考にしています. 本当にありがとうございました.