Windows10でLaravel Homestead環境構築

  • 16
    いいね
  • 0
    コメント

Laravelって出すとこまで。
”Windows10で”と言ってますが、やることはWindows7とか8.1と差異ないと思います。

Homesteadとは

PHP、Laravelによる開発のために必要なあれやこれやがひとまとめになっている、Laravel公式による仮想環境(VM)用のパッケージです。
LaravelやPHPはもちろん、elixirというlaravel版タスクランナーツールに必要なnode、WebサーバのNginx、
DBへのアクセスを補助してくれるmemcachedとかも入っています。
VMなので気軽に環境を破棄したり再構築したりできるという利点もあります。
まあ要はこれいれちゃえばそのまま開発できるよ!っていうまるごとパック的な感じです。

必要なファイルをインスコする

それぞれインストーラーにしたがってインストールすればOK。

セットアップする

インストールできたらBashを使いたいのでgit bashを起動する。git for windowsに同梱されてます。
起動できたらコマンドを上から順に実行する。


#homesteadに用いる仮想環境用の下地(boxファイル)をつくる
vagrant box add laravel/homestead
#実行すると、このボックスをなんのツールで動かすか聞かれるのでvirtualboxを選択してenter。でもどっちでもいいかもしれない

#homesteadのgitレポジトリをHomesteadというディレクトリの中に作成する
git clone https://github.com/laravel/homestead.git Homestead

#完了したらディレクトリに移動
cd /Homestead

#設定ファイルとかつくる(初めてHomesteadを入れるマシンの場合は必須)
./init.sh

>Homestead initialized!
#上のメッセージが出たら移動してyamlファイルを編集
cd ~/.homestead/
vi Homestead.yaml

#vimが苦手な人はpwdでエクスプローラーから直接エディタ起動していじるなりどうぞ

yamlファイルをいじる

いじるのはfolderssitesの2つだけだと思いますが、一応何が割り当てられてるのは書いておきます。

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 #秘密鍵の場所

folders:
    - map: D:\homestead\Laravel #ローカルのディレクトリ
      to: /home/vagrant/Code #VM上のディレクトリ

sites:
    - map: homestead.app #ホスト名
      to: /home/vagrant/Code/test/public #web上に公開するディレクトリ(Apacheのhtdocsみたいなもん)

databases:
    - homestead

上のmapとtoは相関関係にあり、ローカル(このマシン)と、これからつくるVMでディレクトリの内部を共有します。
つまり、sites:to/home/vagrant/Code/test/publicは、ローカル上のディレクトリD:\homestead\Laravel\test\publicのことであると読み替えることができます。これは覚えておいてください。もちろん、共有しているので、その中身にはローカルとVM、どちらからでもアクセスできます。
また、この環境構築をまっさらな状態から始める場合は、マシン上でfolders:mapにあたるディレクトリを予め作っておいてください。じゃないとこの後の工程でつまります。

鍵を作る

VMに入るための鍵を作る。MacやLinuxと異なり、windowsはgit for windowsの中に鍵作成機能があります。
鍵を作っておくとパスワードで認証しなくていいので楽みたいです。
やり方はよくわからないので書きませんが、PuTTYとかPuTTYgenでやってもいいみたいです。
公開鍵?秘密鍵?なにそれおいしいの?という方はこのへんとか
このへんとか読んでおくと幸せになれるかもしれません。


#鍵をつくる用のフォルダを作成して移動
mkdir ~/.ssh && cd $_

#鍵作成
ssh-keygen -t rsa -C <メールアドレス>
#いろいろ聞かれるが、全部enterでスキップして問題無いみたいです

hostsファイルを書き換える

IPアドレスからVMの環境に転送するために、hostsファイルを編集し、
yamlファイルに従って以下を追加する。
windowsマシンではC:\Windows\System32\drivers\etc\hostsにあります。
編集前・編集後に書き込み権限の設定を忘れないように。


//左がIPアドレス、右がホスト名(sitesのmap)
192.168.10.10 homestead.app

vagrant起動

いよいよ仮想マシンを起動します。
起動前に先ほどのディレクトリを作ったか確認して、以下のコマンドを実行。


cd ../Homestead
vagrant up

なんかいろいろ出ますが、数分で起動します。

laravelのプロジェクトを作成する

ここで、homestead.appにアクセスしても、no input file specifiedと表示されるだけです。yamlファイルで指定したWeb上での公開ディレクトリになにもないからです。というかディレクトリがないからです。
conposerを使ってLaravelのプロジェクトを新規作成します。


#vagrantにssh接続
vagrant ssh

#VM上のローカル共有ディレクトリに移動
cd Code/

#conposerが最新のバージョンか確認、最新じゃなかったらアップデートをかける
sudo composer self-update

#プロジェクト作成
composer create-project laravel/laravel Laravel --prefer-dist

いろいろインスコが始まりますので待ちます。数分かかります。
終わったらvagrantの中身そのものには用がなくなるので、exitでVMから抜けても大丈夫です。VMをシャットダウンしてはダメですよ。

アクセスしてみる

ここまで終わったら、あとはアクセスしてみるだけです。VMが起動していることを確認して、
http://homestead.app/
にアクセスしてみましょう。

finish.jpg

上のように表示されていれば、環境構築は完了です。お疲れ様でした。
開発頑張ってください。

no input file specifiedから変わらないんだけど

自分もここであれってなりました。
上の表示を出しているのは、Laravelのプロジェクト内、public直下のindex.phpです。
そこまでのローカルのディレクトリが、yamlファイルのsites:toに表記されたディレクトリと相違ないか確認してみてください。
そこを修正すればほぼ間違いなく出ると思います。自分はこれで出ました。
ローカルの階層とyaml、どちらに合わせても大丈夫です。VMのディレクトリを直すのはやめたほうがいいです。
出なかったらごめんなさい。Google先生に聞いてみてください。

7/28追記 artisanコマンドの実行場所

上記構成で構築した場合、artisanコマンドは以下のように実行します。

//VMに入って
vagrant ssh

//プロジェクトフォルダへ移動
cd Code/Project

php artisan list

Composerとかもここから実行します。
ローカルマシン側のプロジェクトフォルダからは実行できませんのでご注意ください。

参考

2016/02/20におけるLaravel Homestead導入 on Windows
HomesteadをつかってLaravel5を動かしてみる
Laravel Homesteadを使ってみよう!
Laravel 5.1 Laravel Homestead(公式ドキュメント)