2019-02-24 2019-04-05 技術

Laravel Homestead環境の構築

今までxamppでLaravel環境を構築していたが、業務でVagrantを使っていい機会なのでLaravel Homestead環境を構築してみた。

目次

Homesteadのインストール

まず、Homesteadのboxをダウンロードする。
その際どの仮想環境を使用するか聞かれたので、VirtualBoxを選択。
自分の環境では 30分くらいかかった。

1
vagrant box add laravel/homestead

そのあと、homesteadリポジトリをcloneし、自分が使いたいバージョンのブランチにチェックアウトする。
最後に初期化batを走らせて環境構築終了。

1
2
3
4
git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
git checkout v7.18.0
init.bat

Homestead.ymlの編集

ymlを編集するが、その前にssh鍵がない場合は作成する。
何か聞かれてもEnter連打でOK

1
2
cd ~/
ssh-keygen -t rsa

その後Homestead.ymlを編集する。

Homestead.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ip: "192.168.10.10" #接続先となるIPアドレス
memory: 2048 #割り当てるメモリ(MB)
cpus: 1 #同CPUのコア数
provider: virtualbox #VMのホスト

authorize: ~/.ssh/id_rsa.pub #SSH公開鍵の場所

keys:
- ~/.ssh/id_rsa #秘密鍵の場所

folders:
- map: ~/code #ローカルのディレクトリ
to: /home/vagrant/code #VM上のディレクトリ

sites:
- map: projectName.local #ホスト名
to: /home/vagrant/Code/projectName/public #公開するディレクトリ

databases:
- homestead

ついでにhostsファイル(C:\Windows\System32\drivers\etc\hosts)も編集しておく。

hosts
1
192.168.10.10  projectName.local

プロジェクトの作成

Laravelプロジェクトを作成するためにまずはVagrant環境にログインする。

ホスト
1
2
vagrant up
vagrant ssh

ただし、自分の環境ではネットワークの設定エラーと同じエラーが出た。
なのでHomestead.ymlhostsのipを例えば192.168.30.10のように変更するとちゃんと動いた。

そのあと、プロジェクトの作成。ホストのディレクトリは作っておく。

ゲスト
1
2
cd ~/code
composer create-project laravel/laravel projectName

そして、ブラウザで http://projectName.local を開いて、初期画面が表示されれば成功。

DBの変更

データベース名などを変更したいときは、Homestead.ymlを編集する。複数もOK

Homestead.yml
1
2
3
4
databases:
- homestead
- projectName
- sample

変更したら、vagrant reload --provisionを実行すると反映される。

DBへの接続

vagrant上のデータベースの確認にはA5:SQL Mk-2を使う。
.envの情報をもとにA5からデータベースにアクセスする。
データベース > データベースの追加と削除 > 追加 > MySQL(または PostgreSQL)

.env
1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

その際に、socket error code 10061というエラーで接続できないことがある。
そのときは、Windows上のvagrantにMySQLやらPostgreSQLのクライアントにA5SQLを使うを参考にトンネル経由で接続するとうまくいった。

参考