5.2で書いた設定だけど、5.5でも動いたので、タイトルは5.5に買えました。
ローカルで適当に構築してあるlaravelがうまく動かなかったので環境周りの問題を切り離したかったから、homesteadを使ってみることにした。Laravel公式のhomesteadドキュメントはここ。
- homesteadは開発用の仮想環境の準備を便利にしてくれるツール。
- homesteadはLaravel公式が用意してくれている。
- Laravelのバグを疑うときは、homestead環境で疑うといい。
仮想マシンのライブラリ
仮想マシン(VM(VirtualMachine))のプラットフォームは、VirtualBoxかVMWareを選べるがVMWareはダウンロードと行ってもどれをダウンロードしたらいいのかわかりにくいので、自分にとってはVirtualBox一択。
自分の前提条件
- PCはMacでやっています。Mac OS X Yosemiteです。
- githubのアカウントとかは持っています。Xcodeの開発用ライブラリもインストールすんでいます。
- composerのインストールもすんでる。
- phpもローカルにインストールはすんでる。
- Vagrantはrubyで動くのでrubyのインストールが必要。
- Laravelで作るアプリはすでに
laravel new
して作ってある。
VirtualBoxのインストール
VirtualBox 5.xのバージョンが利用できるとのことなので、
https://www.virtualbox.org/wiki/Downloads
このページからVirtualBox binariesの「VirtualBox 5.0.12 for OS X hosts amd64」ってのを選んでダウンロード。
ダウンロードしたdmgファイルを開いてinstall.pkg(だったかな)をダブルクリックしてインストールしていくだけ。設定とか無いのではいはいってインストールするだけ。
簡単。
vagrantのインストール
Hasicorpのvagrantのページ https://www.vagrantup.com からDownloadページに行って、「MAC OS X Universal (32 and 64-bit)」をダウンロードしてdmgファイルを開いて、install.pkg(だったかな)をダブルクリックして、設定とか無いのではいはいってインストールするだけ。
簡単。
boxのダウンロード
仮想環境のテンプレみたいなもの。テンプレとなるboxをダウンロードしておく。データでかくて2,3GB使うからディスクに余裕と、お家か会社のネットワークでやりましょうね。
vagrant box add laravel/homestead
ローカルにあるLaravelプロジェクトをhomesteadで立ち上げる
公式ドキュメントだとまだ何もしてない場合みたいな感じでやってるけど、すでにLaravel installとかしてるときのことが後ろの方に書いてあるので、英語読めない自分にはちょっと気づきにくかった。
コンポーザーでhomesteadをローカルプロジェクトにインストール
composer require laravel/homestead --dev
これでvendor/laravel/homesteadにファイルがダウンロードされてインストールされる。
設定ファイルの生成
homestead makeというコマンドがあって、プロジェクトのルートディレクトリでこのコマンド打つと、このプロジェクト用のVagrantfileとhomestead.yamlの設定を自動生成してくれる。
自分のアプリは、/Users/yourname/development
の場所で、laravel new blog
って最初に作った。
アプリは、/Users/yourname/development/blog
にある。
そのディレクトリに移動して。
php vendor/bin/homestead make
ってすると設定ファイルできた。
環境の設定ファイルの中を見てみる。
Homestead.yaml
ファイルの中身はこんな感じ。
foldersとsitesの設定がどこに何かくのか英語じゃわからなかったけどこれならわかる。
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
hostname: blog
name: blog
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: "/Users/yourname/development/blog"
to: "/home/vagrant/blog"
sites:
- map: homestead.app
to: "/home/vagrant/blog/public"
databases:
- homestead
この設定ファイルだと、IPアドレス192.168.10.10
に、homestead.app
ってドメイン名で設定しましたってなってます。
homestead.appをhostsファイルに追加
sudo vi /etc/hosts
して192.168.10.10 homestead.app
の行を足す。
起動して動くかチェック
vagrant up
プロジェクトがhomesteadで仮想環境が立ち上がった。
vagrant upではネットワークの環境設定とかも勝手にやってくれるみたいね。
vagrant ssh
ssh接続してなかみるなら↑。