今さらながらLaravelの環境構築をしてみた(VirtualBox + Vagrant + Homestead + Composer)

# 経緯
PHPを使ってアプリケーションを作成しようと考え、せっかくなら触ったことのないフレームワークを使って見ようと思い、Laravelを導入してみました。
今まで、**Cake PHP**を使用する機会が多かったので、環境構築からつまずくことがあったのでメモとして残しておきます。

## 基本的なこと
[【Laravel超入門】開発環境の構築（VirtualBox + Vagrant + Homestead + Composer）](https://qiita.com/7968/items/97dd634608f37892b18a)
基本的にはこちらを参考にさせていただきましたが、一部うまく行かなかった部分もあるのでその部分を含め、以下に手順を残しておきます。

## 環境構築手順
### 環境
macOSMojave 10.14.3
Macbook Air

### 1.Vagrant と VirtualBox のダウンロードとインストール
Vagrantは[こちら](https://www.vagrantup.com/downloads.html)
VirtualBoxは[こちら](https://www.virtualbox.org/)

### 2.Homestead vagrant box のダウンロード
ターミナルでコマンドを実行します。

```
vagrant box add laravel/homestead
```

このコマンドで、Laravelの開発環境を作成するための準備を行います。以前CakePHPの環境を構築した際は、vagrantfileを作成しましたが、HomesteadではLaravel用に作成済みのvagrantfileを入手できるようです。公式から出ているので、初心者にはありがたいなと思いました。

### 3.Homstead のダウンロード
ターミナルで、appというディレクトリを作成し、`Homestead `をダウンロードします。

```
mkdir app
```

の後に

```
cd app
```

appディレクトリで以下のコマンドを実行します。

```
git clone https://github.com/laravel/homestead.git Homestead
```

### 4.Laravel Homestead の設定ファイルの作成
先ほどダウンロードした`Homestead`のディレクトリに移動します。その後コマンドを実行します。

```
cd Homestead
bash init.sh
```

`Homestead.yaml`を作成します。

### 5.SSH鍵ファイルの作成
ホームディレクトリに移動後、鍵の有無を確認します。

```
cd
ls -la I grep .ssh
```

鍵が存在しない場合は、

```
ssh-keygen -t rsa
```

鍵を作成します。`Enter file in which to save the key`が出たら、Enterキーを押します。パスフレーズを決めなさいと言われるので、任意のパスフレーズを入力します。認証の際に必要になるときもあるので、覚えやすいものにすると良いと思います。

```
ls -la I grep .ssh
```

念のために、上記のコマンドで、`id_rsa`と`id_rsa.pub`が存在するか確認します。

### 6.Homestead の設定ファイルの編集

```
cd app/Homestead
```

ディレクトリ を`Homestead`に移動します。

```
vi Homestead.yaml
```

で、ファイルを修正します。
元記事では、表記が修正されていないため、以下の表記をコピーしてください。

```HAML:Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/line
      to: /home/vagrant/code

sites:
    - map: homestead.test
      to: /home/vagrant/code/Laravel/public

databases:
    - homestead

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# zray:
#  If you've already freely registered Z-Ray, you can place the token here.
#     - email: foo@bar.com
#       token: foo
#  Don't forget to ensure that you have 'zray: "true"' for your site.

```

### 7.仮想マシンの起動

```
vagrant up
```

を行い、仮想マシンを起動します。

### 8.仮想マシン上で Composer を利用して、Laravel ファイルをダウンロードする
仮想マシンを起動したら、sshで仮想マシンにアクセスします。

```
vagrant ssh
```

その後、仮装マシンにLaravelのファイルをダウンロードしていきます。
ファイルを格納するディレクトリに移動し、ファイルをダウンロードします。

```
cd code
composer create-project laravel/laravel --prefer-dist Laravel
```

### 9.Laravel ページの表示
[http://192.168.10.10/](http://192.168.10.10/)にアクセスして以下のページが表示されれば、完了です！

![FireShot Capture 157 - Laravel - 192.168.10.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221678/11a20968-c4a8-d2fe-e05f-49855882695d.png)

# まとめ
参考元の[【Laravel超入門】開発環境の構築（VirtualBox + Vagrant + Homestead + Composer）](https://qiita.com/7968/items/97dd634608f37892b18a)を参考に環境構築を行ってみました。
参考元のコメントにあるように、Laravelのバージョンアップに伴い、微妙にディレクトリ名が変わってうまくいかない場所があるようです。
**2019年5月14日時点**では、上記手順で環境構築が行えたので、もし詰まっている方が入れば参考にしていただきたいです。