2016/02/20におけるLaravel Homestead導入 on Windows

  • 14
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

on Windowsって書いてるけどほぼ変わらない方法でMacでも使えます。Mac欲しいですね。

Homesteadをつかおう

Laravelは非常に生産性の高いPHP製のWebアプリケーションフレームワークです。

多くのWebアプリケーションフレームワークは開発から運用までUnix系OSであること前提とした作りになっており、WindowsユーザーはXAMPPの力を借りても多々不便な思いをすることになりがちです。

Laravel HomesteadVagrantの力を借りて仮想の開発環境を作ることで、Windows上での開発を非常に容易にしてくれます。

ではそんな素敵なLaravel Homesteadを実際に使っていきましょう。

必要なアプリケーションの導入

Laravel Homesteadを使うためにはいくつかのアプリケーションの導入が必要です。

以下の3点をインストールします。

Git for WindowsはWindows向けのgitクライアント環境構築をしてくれるすごいやつです。今回はこいつのGit Bashgitssh-keygenを使います。

Oracle VirtualBoxは言わずと知れた仮想化ソフトウェアです。Vagrantの仮想マシンイメージを動かすコアの役割をします。

Vagrantは仮想マシンを用いた開発環境構築に特化する管理ソフトウェアです。Laravel HomesteadはVagrantの1つのパッケージとなります。

インストール

環境が整ったところで、実際に環境を構築していきます。

Homestead ボックスのダウンロード

仮想マシンですから動かすイメージが必要です。先ほどインストールしたGit for Windowsに含まれるGit Bashを利用し、bashシェルを起動します。

次に仮想イメージをダウンロードしますが、以下のコマンドだけでOKです。

ただし、とんでもなく遅いので時間に余裕があるときにやりましょう。

Git_Bash
vagrant box add laravel/homestead

Homestead ボックスのセットアップ

ダウンロードしただけでは動かないので、設定を行っていきます。
以下の通り入力してリポジトリをクローンしてください。

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

完了したらcd Homesteadでディレクトリに移動し、./init.shを実行します。

これでユーザーディレクトリに.homesteadディレクトリが作成され、設定ファイルが出力されます。

次に設定を行っていきます。cd ~/.homesteadでディレクトリに移動します。

このディレクトリにあるHomestead.yamlを編集して設定を行っていきますが、ここで使うエディタは何でも良い(改行コードLFに対応していれば)ので好きなエディタで開いてください。

Windows側でパスが通っていればGit Bash上でもエディタが起動できます。自分の場合Meryを使っているので以下のようにしました。

Git_Bash
mery Homestead.yaml

実際に設定を行っていきます。

Homestead.yaml には様々なディレクティブが存在しますが、今回は必要最低限の変更にとどめます。

最低限設定が必要なのは以下の2つです。

  • folders : Windows上/仮想Linux上の共有パスの設定
    • map : Windows上のパス(共有元)
    • to : 仮想マシン上のパス(共有先)
  • sites : Linux上のホスト名と公開ディレクトリ(htdocs)
    • map : ホスト名
    • to : 公開するディレクトリ

例えばWindows上のD:\Dev\Laravelを作業ディレクトリとし、D:\Dev\Laravel\Project\pubilcを公開したい、という場合は以下のような構文になります。

Homestead.yaml
folders:
    - map: D:\Dev\Laravel
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Project/public

各ディレクティブに説明をつけてみましたが、基本的に必要ありません。
メモリが少ない場合などは適宜調整しないとひどい目に合うかもしれないので調整します。

Homestead.yaml
---
ip: "192.168.10.10" <- 割り当てるIPアドレス
memory: 2048 <- 割り当てるメモリ容量 MB単位
cpus: 1 <- 割り当てるCPUコア数
provider: virtualbox <- VMホスト

authorize: ~/.ssh/id_rsa.pub <- 認証に使うSSH公開鍵

keys:
    - ~/.ssh/id_rsa <- SSH秘密鍵

folders:
    - map: D:\Dev\Laravel <- Windows上のパス(共有元)
      to: /home/vagrant/Code <- 仮想マシン上のパス(共有先)

sites:
    - map: homestead.app <- ホスト名
      to: /home/vagrant/Code/Project/public <- 公開するルート

databases:
    - homestead <- データベース

編集が完了したら保存して設定は完了です。

仮想マシンのSSHへ安全に接続するために鍵を作成しておく必要があります。
というかパスワード認証もいけるんだろうけど、めんどくさいので鍵作ったほうがいいです。

ssh鍵を保存するためのディレクトリを作成して移動します。

Git_Bash
mkdir ~/.ssh
cd ~/.ssh

次に鍵を生成します。

Git_Bash
ssh-keygen -t rsa -C 自分のメールアドレス

保護するためのキーなどを求められますが開発にあたってはおそらく必要ないので全部Enterで省略してしまいましょう。

鍵が生成されたら完了です。

起動

おつかれさまです。では実際に起動してみます。

Git Bashで先ほどクローンしたHomesteadディレクトリ(~/.homesteadじゃない)に移動し、仮想マシンを起動します。

Git_Bash
cd Homestead
vagrant up

無事立ち上がったら適当にブラウザを起動して先ほど設定ファイルに書かれているIPアドレスをおもむろに入力します。
デフォルトのままであれば192.168.10.10です。

開けましたか?開けたら全て完了です。お疲れ様でした。

おまけ:仮想マシンにSSHで接続する

確かに公開環境は出来たけど開発環境は出来てないじゃないか!って言われると思うので、開発環境として使う方法も書いておきます。

先ほどと同様にGit Bashを起動し先ほどクローンしたHomesteadディレクトリに移動して以下のように入力します。

Git_Bash
vagrant ssh

後はcomposerなりgulpなりなんでも出来ます。さすがLaravel、いたれりつくせりです。

追記
gulpが動かない方はこちらをどうぞ
Laravel Homestead on Windowsでgulpが動かない!