Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

環境構築

WindowsでHomesteadを使ってLaravel開発環境の構築

3760ce22-f7b1-2a68-53b1-e8bc7d1b21b8

LaravelにはHomesteadというVagrant用のboxが用意されています。

これを入れるとLaravelの開発で必要なソフトをひとまとめにインストールできます。

今回はWindows7にHomesteadを使ってLaravelの環境構築をしていきます。

ちなみにHomesteadを使用すると仮想マシンのOSはUbuntu(ウブントゥ)になります。

 

Git Bashについて

Homesteadを入れるにあたって事前にインストールしておかないといけないソフトは3つあります。

  • Vagrant
  • Virtual Box
  • Git for Windows

このうちVagrantとVirtual Boxは以前インストールをしました。

仮想マシン(VM)の構築

今回、追加でGit for Windowsをインストールします。

Git for WindowsをインストールするとGit Bashも一緒についてきます。

Homesteadを設定する際にはこのGit Bashを使います。

Git Bashとはコマンドプロンプトのようなコンソールで、LINUXやUNIXのBashと同様のコマンドが使えます。

Homesteadをインストールする際、初期設定をするためにBashコマンドでinit.shファイルを実行する必要があるのですが、その際にGit Bashが必要になります。

 

チュートリアル

実現したいこと

  • Homesteadを使ってLaravelの開発環境を構築する
  • Laravelのスタートページを表示させる

 

手順

セットアップをする


# ホームディレクトリ(C:\Users\ユーザ名\)で以下の作業を行う
# vagrantにboxを追加
vagrant box add laravel/homestead

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

# 上記コマンドによって現ディレクトリ配下に、Homesteadというディレクトリが出来上がる。
# そのディレクトリに移動する
cd /Homestead

# 初期設定をするためのinit.shファイルを実行
bash init.sh

# 上記コマンドによってホームフォルダ(C:\Users\ユーザー名\)に.homesteadという隠しフォルダができる
# 隠しフォルダ内にHomestead.yaml というコンフィグファイルが作成されるので、内容を編集する
cd ~/.homestead/
vi Homestead.yaml

 

Homestead.yamlを編集する

ip: "192.168.10.10" ←接続先のIPアドレス
memory: 2048 ←割り当てメモリ
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub ←公開鍵の場所

keys:
 - ~/.ssh/id_rsa ←秘密鍵の場所

folders:
 - map: C:\homestead\laravel       ← ローカルディレクトリ(ディレクトリを作成しておく)
 to: /home/vagrant/Code          ← 仮想マシン上のディレクトリ

sites:
 - map: homestead.app           ←ホスト名(あとでhostsに登録する)
 to: /home/vagrant/Code/Laravel/public ←ドキュメントルートの場所

databases:
 - homestead

yamlファイルで編集するところは基本的には[folders:]の[-map:]にあるローカルディレクトリの箇所だけで問題ありません。

上の例でいくとWindows側でCドライブ直下に「homestead」と、そのフォルダの中に「laravel」のフォルダを作成することになります。

以下はyamlファイルについての簡単な説明です。

 

★「folders:」について

「map:」はWindows側のフォルダ、「to:」は仮想OS側のフォルダです。

上の例ではWindowsの「C:\homestead\laravel」というフォルダと仮想マシンのOS(Ubuntu)の「/home/vagrant/Code」フォルダが同じフォルダであるかのように振る舞います。

仮想OSのフォルダとWindows上のフォルダのペアを指定して、2つの環境から同じフォルダを参照できるようにしています。

 

★「sites:」について

ローカルドメインとフォルダの割り当てです。

ブラウザで「http://homestead.app」と入力すると「/home/vagrant/Code/Laravel/public」というフォルダの内容が表示されるようになります。

 

鍵を作る


#Homesteadディレクトリ上と同階層に.sshディレクトリ作成
mkdir ~/.ssh

#.sshディレクトリに移動
cd ~/.ssh

#鍵作成
#SSHで接続する為に鍵を作るが開発用なので適当に作る
#2回パスワードの入力を問われますが、どっちも何も入力せずEnter
ssh-keygen -t rsa -C <メールアドレス>

 

hostファイル

IPアドレスから仮想マシンに転送するために、hostsファイルを編集します。

Hostsファイルの場所はWindowsだと「C:\Windows\System32\drivers\etc\hosts」にあります。

yamlファイルに従って以下を追加します。

左がIPアドレス、右がホスト名(sitesのmap)になります。

192.168.10.10 homestead.app

 

Vagrant起動

# 最初の手順でホームディレクトリ直下にHomesteadというディレクトを作成した
# そのディレクトリに移動してVagrantを起動させる
cd ~/Homestead
vagrant up

 

Laravelのプロジェクト作成

# vagrantにssh接続
vagrant ssh

# 仮想マシン(Ubuntu)のローカル共有ディレクトリに移動
# yamlファイルの[folders:][to:]にあたる箇所
cd Code/

#composerをインストール
curl -sS https://getcomposer.org/installer | php

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

 

WEBブラウザでアクセス

仮想マシン(Ubuntu)が起動していることを確認して、

http://homestead.app/

にアクセスする。

上のように表示されていれば、環境構築は完了です。

はまったところ

Vagrantが立ち上がらない

BIOSのVT-x(仮想化支援機能)が無効だったのでVagrant自体が起動しませんでした。

VT-x(仮想化支援機能)の有効化について

 

Vagrantを起動する場所が違う

Vagrantを起動する際にはホームディレクトリ( C:\Users\ユーザ名\ )直下にある「Homestead」ディレクトリの中に入って起動させます。

またyamlファイルで記述した(※「folders:」の「map:」にあたる箇所です)ローカルディレクトリも事前に作成しておかないといけません。

 

-環境構築