Homesteadとは
LarvalのためのVagrantのBOX。
Homesteadでは、Laravelに必要なPHPモジュールやライブラリがあらかじめ用意されており、素早くLaravelの仮想環境を構築できる。自動的にSSL証明書も発行してくれるので、最初からHTTPS環境でもアクセスできる。(警告はでるが)
Homesteadがインクルードしているソフトウェア
- Ubuntu
- Git
- PHP
- Nginx
- MySQL
- MariaDB
- Sqlite3
- PostgreSQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- ngrok
インストール手順
Homestead環境の構築方法には、2つある。
- グローバルで構築する方法
- プロジェクト毎に構築する方法
グローバルにインストールすると、プロジェクト間で予期せぬ汚染を招きそうなので、ここではプロジェクト毎に構築する方法を説明する。
前提
- Virtual BOX, Vagrantやcomposer等、Vagrant環境を構築するのに必要なツールはすでにインストール済みであること
HomesteadのVagrant BoxをVagrantのリストに追加する
vagrant box add laravel/homestead
プロジェクト毎にインストール
環境を構築したいディレクトリを作成し、composerでインストール。
mkdir /Users/yumataesu/Sites/yout_site
cd yout_site
composer require laravel/homestead --dev
vagrant fileとHomestead.yamlを生成する
Mac / Linuxの場合
php vendor/bin/homestead make
Windowsの場合
vendor\bin\homestead make
Vagrant起動
vagrant up
http://homestead.app でアクセスできるか確認。
ドキュメントルートは空なので、 **NginxのNo input file specified.というエラーメッセージがでる。**Larval自体は、手動でインストールする必要がある。
Homestead.yamlを編集し、Larvalをインストール
homestead.yamlはHomesteadの設定ファイル。
ここを編集してゲストマシンとホストマシンのディレクトリを同期設定をする。
- mapは、ホストマシン側で同期したいディレクトリを指定する。(ここでは、rakufile内にwebというディレクトリを作成した)
- toは、ゲストマシン側で同期したいディレクトリを指定する。
folders:
-
map: /Users/username/Sites/myhomestead/web
to: /home/vagrant/Code
仮想環境へログインし、共有ディレクトリまで移動する
vagrant ssh
cd /home/vagrant/Code
2017年9月26日現在の5.5.X系では、Laravelをインストールする前にcomposerのアップデートが必要
composer global update
Laravelをインストール
laravel new
これで、http://homestead.app でアクセスするとLaravelのHello Worldが表示される。
アクセスするドメインを変更する場合
homestead.appを変更する場合、Homestead.yamlのsitesプロパティを編集する。
- map:アクセスするドメインの設定
- to:ゲストマシンNginxのドキュメントルートの設定
sites:
-
map: myhomestead.app
to: /home/vagrant/Code/public
仮想マシンのNginx設定を更新するため以下を再実行する
vagrant reload --provision
hostファイルも更新する
仮想マシンのIPは、Homestead.yamlのipプロパティを確認。
192.168.10.10 myhomestead.app