laravel

HomesteadによるLaravel環境構築


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は、ゲストマシン側で同期したいディレクトリを指定する。


Homestead.yaml

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が表示される。

スクリーンショット 2017-09-26 13.10.45.png


アクセスするドメインを変更する場合


homestead.appを変更する場合、Homestead.yamlのsitesプロパティを編集する。


  • map:アクセスするドメインの設定

  • to:ゲストマシンNginxのドキュメントルートの設定


Homestead.yaml

sites:

-
map: myhomestead.app
to: /home/vagrant/Code/public

仮想マシンのNginx設定を更新するため以下を再実行する

vagrant reload --provision


hostファイルも更新する

 仮想マシンのIPは、Homestead.yamlのipプロパティを確認。


hosts

192.168.10.10 myhomestead.app