Homesteadで開発環境を構築

Tag:

Homesteadを利用するとLaravelの開発環境を手軽に作成することができます。ここでは、Homesteadで開発環境を構築し、Laravelを動作させる手順について紹介します。

※作業環境
OS:Windows8.1
仮想化ソフトウェア:VirtualBoxを利用

なお、Vagrantを利用しますのであらかじめ準備しておいてください。Vagrantについては、「開発環境 : Vagrantの使い方 | DN-Web64」にて取り上げてますので参考にしてみてください。

作業完了後のフォルダ

先に、作業完了後のフォルダ構成がどのようになるのか見てみます。

ホストマシン
パス 概要
フォルダ ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead HomesteadのOSイメージ
~/.homestead 仮想マシンの動作設定を行う
~/Code ゲストマシンとの共有フォルダ
C:\laravel_test\Homestead Homesteadリポジトリのクローン
ファイル C:\Windows\System32\drivers\etc\hosts hostsファイル
ゲストマシン
パス 概要
フォルダ /home/vagrant/Code/Laravel/public ドキュメントルート
/home/vagrant/Code ホストマシンとの共有フォルダ

Homesteadによる開発環境を構築手順

大まかな手順は以下の通りです。

1. HomesteadのOSイメージをboxに追加
2. Homesteadリポジトリのクローンを作成
3. init.shを実行
4. Homestead.yamlを修正
5.「vagrant up」で仮想マシンを起動
6.「vagrant ssh」で仮想マシンにログイン
7. composerでLaravelをインストール
8. ホストマシンからブラウザで動作確認

では、1つずつ作業を進めていきます。

1. HomesteadのOSイメージをboxに追加

HomesteadのOSイメージは、Laravel開発のためにパッケージされた環境となっています。

下記コマンドでVagrantのboxに追加します。

vagrant box add laravel/homestead

最新バージョンのOSイメージですとphp7が含まれています。もしphp5.6を利用したいのであれば、下記コマンドを実行します。

vagrant box add laravel/homestead --box-version 0.3.3

追加されたか確認するためbox一覧を表示します。「vagrant box list」を実行します。
homestead_box_list

2. Homesteadリポジトリのクローンを作成

ここでは「/C/laravel_test」というフォルダを作成し、この中にHomesteadリポジトリのクローンを作成します。

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

homestead_clone

3. init.shを実行

リポジトリの中に「init.sh」というスクリプトが存在するので実行してください。
homestead_clone2

homestead_initsh
実行すると、ホームディレクトリ内に「.homestead」というフォルダが作成されます。このフォルダ内に存在する「Homestead.yaml」で仮想マシンの動作設定を行えます。

4. Homestead.yamlを修正

Homestead.yamlのデフォルトの内容は以下の通りです。

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

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

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/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

「authorize」「keys」にSSH用の鍵を設定して、必要に応じ「folders」「sites」などを修正します。それぞれの意味は以下の通りです。

authorize: # 公開鍵のパス

keys:
     - # 秘密鍵のパス

folders:
     - map: ~/Code                # ホストマシン側で仮想マシン側と共有されるフォルダ
        to: /home/vagrant/Code    # 仮想マシン側でホストマシン側と共有されるフォルダ

sites:
     - map: homestead.app                        # IPアドレスに紐づけるホスト名
        to: /home/vagrant/Code/Laravel/public    # Webサーバのドキュメントルート

※補足1
folder[“map”]をデフォルトのまま「~/Code」で利用するのであれば、ホームディレクトリ配下に「Code」フォルダを作成します。

mkdir ~/Code

※補足2
php5.6のboxを利用したいのであれば、「homestead.yml」に下記内容を追記します。

version: "0.3.3"

5.「vagrant up」で仮想マシンを起動

Homestead配下に移動し、仮想マシンを起動させます。
homestead_up

6.「vagrant ssh」で仮想マシンにログイン

無事に仮想マシンが起動したら、仮想マシンにログインします。
homestead_ssh

7. composerでLaravelをインストール

仮想マシン上でLaravelをインストールします。

最新のリリース版をインストールしたいなら下記コマンドを実行します。

composer create-project laravel/laravel プロジェクトパス --prefer-dist 

5.1をインストールしたいなら下記コマンドを実行します。

composer create-project laravel/laravel プロジェクトパス 5.1.* --prefer-dist 

homestead_laravel

以下のようにLaravelのフレームワークがインストールできました。
homestead_laravel2

インストールの際に「.env」が作成されてました。「php artisan key:generate」もインストール時に実行されていたので、すでにホストマシン側からLaravelの動作確認をできる状態にあります。

8. ホストマシンからブラウザで動作確認

まずはHomestead.yamlで設定したIPアドレスを指定して動作確認します。
homestead_chrome
無事表示されました。

次に仮想マシンのホスト名を指定して動作確認します。
homestead_chrome2
上手くいかないようです。ホストマシン側のhostsファイルに仮想マシンの情報をまだ追記していかったのが原因です。

hostsファイルですが、Windowsであれば「C:\Windows\System32\drivers\etc\hosts」です。下記のように、仮想マシンのIPとホスト名の情報を追記します。

192.168.10.10       homestead.app

再度確認します。
homestead_chrome3
今度は、無事表示されました。もし表示されない場合は、ブラウザを再起動して試してみてください。

Homesteadを使う上での豆知識

「su」ではなく「sudo」を利用

HomesteadのOSは、Ubuntuです。Ubuntuは、デフォルトだとrootでログインできません。よって、「su」ではなく「sudo」を利用します。

MySQL

mysqlのユーザ名とパスワードは以下の通りです。
ユーザ名:homestead
パスワード:secret

homestead_mysql

Nginx

「vagrant up」でプロビジョニングが実行されているとき、「/etc/nginx/sites-available」配下に設定ファイルが格納されます。「homestead.yaml」の情報を元に作成された設定ファイルです。

「vagrant up」時の処理を確認したい。

Vagrantfileの記述をみると、「vagrant up」時の処理を確認するには、Homesteadリポジトリ内の「scripts/homestead.rb」を見るとよさそうです。

スポンサーリンク