ログってなんぼ

日々のメモです

MacにLaravel開発環境を作る(Vagrant+Homestead編)

前準備

VirtualBox、Vagrantインストール済みのMacを仮定します

Downloads – Oracle VM VirtualBox

www.vagrantup.com

vagrant boxを追加

$ vagrant box add laravel/homestead  --provider=virtualbox

    box: URL: https://vagrantcloud.com/laravel/homestead
==> box: Adding box 'laravel/homestead' (v2.1.0) for provider: virtualbox
    box: Downloading: https://app.vagrantup.com/laravel/boxes/homestead/versions/2.1.0/providers/virtualbox.box
==> box: Successfully added box 'laravel/homestead' (v2.1.0) for 'virtualbox'!

Homesteadをclone

今回は例としてhomesteadとした

$ git clone https://github.com/laravel/homestead.git homestead

Cloning into 'testproject'...
remote: Counting objects: 2304, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 2304 (delta 5), reused 8 (delta 1), pack-reused 2284
Receiving objects: 100% (2304/2304), 417.97 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1338/1338), done.

cloneして出来たディレクトリに入ります

$ cd testproject/

github.com

ここを見て、最新Latest Versionを確認後、ブランチを切り替えます

$ git checkout v5.4.0

初期化

$ bash init.sh
Homestead initialized!

設定

IPアドレス、共有ディレクトリ、sshキーなど必要な項目を設定します

  • ipアドレスは"192.168.10.10"
  • メモリ割り当て2GB
  • cpu割当て1
  • virtualbox使用
  • ssh公開鍵 ~/.ssh/id_rsa.pub
  • 秘密鍵 ~/.ssh/id_rsa
  • Macの~/workspaceをVMの/home/vagrant/workspaceに共有
  • Macの~/workspace/site1にあるLaravelプロジェクトにsite1.appとしてアクセス
  • db名はhomestead

という内容だと以下のような書き方になります

ちなみにsites:databasesは複数定義することも可能です

$ vim Homestead.yaml


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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/workspace
      to: /home/vagrant/workspace

sites:
    - map: site1.app
      to: /home/vagrant/workspace/site1/public

databases:
    - homestead

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

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

hostsに追記

192.168.10.10  site1.app

vagrant環境の起動

じゃ起動してみます

$ vagrant up

これでとりあえず環境構築はOKです

mysql のユーザー

.env

DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

という感じにしておけば、新たにユーザーを作らなくてもアクセスできます