このブログはプログラム開発や学習などの際に役立つ知識や情報を発信するエンジニアのためのトータル技術ブログです。
ご意見やご要望にも積極的に答えていきますので、お気軽にお問い合わせください。

記事へのリクエストはこちら

【Laravel】Homestead+Vagrant+VirtualBoxで開発環境を構築する方法

Laravel
スポンサーリンク

こんにちは!あっきー(IwswAkht)です!

本日は仮想環境でHomesteadを使ったLaravelの環境構築の方法を記事にします。

VirtualBox、Vagrant、Homestead、Git、Composer

上記の言葉を聞いて何それ、おいしいの?という方向けに書いた記事です。

普段はAWS Cloud9が1年間は無料で使用できるとのことでそっちでコードを書いていたのですが、使い過ぎたのか1年経ってないのに最近使用料を請求されるようになってきたので環境を移しました。

WindowsとMac両方で対応できる記事になっているかと思いますので参考にしていただければと思います。

 

スポンサーリンク

はじめに

 

一連の流れを確認しましょう

 

・VirtualBoxのインストール
・Vagrantのインストール
・Gitのインストール
・環境構築

 

また、Macの場合はXcodeがあらかじめインストールされている前提ですのでインストールしていない人はインストールしてからよんでください。

 

VirtualBoxのインストール

 

以下のURLよりダウンロードを行います。

 

Oracle VM VirtualBox

 

VirtualBoxは仮想環境(ホストOS上で別のOSを実行)を提供するソフトウェアです。

実際のOSやサーバーなどの環境構築については次に説明するVagrantを経由して行いますのでここではインストールするだけで大丈夫です。

手順は以下になります。

 

1.「Download VirtualBox x.x」をクリック
2.「VirtualBox x.x.x platForm Packages」より自分のPCの環境のリンクをクリック。

 

あとは特にこだわりがなければそのままガイドに沿ってインストールを行います。

個人的にはデスクトップにアイコンが増えるのが嫌なので Create a shortcut on the desktop/in the Quick Launch Bar のチェックは外しました。

アイコンにショートカットを作らない場合は以下に保存されます。

C:\Program Files\Oracle\VirtualBox\
Finder→アプリケーション

インストールが終了し以下の画像が表示されれば終了です。

 

 

Vagrantのインストール

 

以下のURLダウンロードを行います。

 

Download - Vagrant by HashiCorp
This page lists all the available downloads for Vagrant.

 

使用PCのOSとBit数が同じものを選択します。

・Bitの確認方法

  コントロールパネル>システムとセキュリティ>システム

「システムの種類:」にxxビットと記載されています。

 システム環境設定>システムレポート

プロセッサに「x.x GHz Core i~」のような表記があると思います。それを下記の対応表で確認してください。

 

プロセッサ名 32 ビット/64 ビット
Intel Core Solo 32 ビット
Intel Core Duo 32 ビット
Intel Core 2 Duo 64 ビット
Intel クアッドコア Xeon 64 ビット
デュアルコア Intel Xeon 64 ビット
クアッドコア Intel Xeon 64 ビット
Core i3 64 ビット
Core i5 64 ビット
Core i7 64 ビット

 

VirtualBoxと同様にこだわりがなければガイドに沿ってインストールを完了させます。

Vagrantは隠しファイルとしてインストールされていますので確認したい場合は隠しファイルを表示して確認してみてください。Users/{userName}/.vagrant.d にいます。

 

Gitのインストール

 

続いてGitのインストールを行います。

Laravelを動作させるための環境を構築するツールである「Homestead」はGithubに公開されているためそれをクローンするためです。

 

まずはGitがインストールされているか以下のコマンドで確認してからインストールを行ってください。

 

・確認

$ git --version

 

バージョンの表示がされなければ続きの作業をおこなってください。

 

Windows

 

WindowsではGit for WindowsをインストールしてコマンドはGit bashを使用して環境構築をします。

Homesteadをクローンするためでもありますが、基本的にコマンドがUnix系になるためデフォルトでUnixコマンドが使えないWindowsのコマンドプロンプトでは対応できないため、Git bashでUnixコマンドのようにして使うためです。

以下の記事がGitのインストールの流れから各設定項目の説明まで網羅しておりとてもわかりやすかったので参考にしてください。

 

Windows10にGitをインストール
Windows版のGit(Git for Windows)をWindows10にインストールする手順です。

 

Mac

 

MacはWindowsのように公式のHPからインストールする方法でもいいのですがHomebrewからインストールするほうが楽だったのでこちらを紹介します。

ターミナルを起動して以下のコマンドを実行してください。

 

・homebrewをインストール

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

※最新のコマンドは、Homebrewにアクセスしてください。

 

・確認

$ brew doctor

 

 your system is ready to brew と表示されれば大丈夫です。

 

・Gitのインストール

$ brew install git

 

・確認

$ git --version

 

 git version 2.x.x となれば完了です。

 

環境構築

 

環境構築はコマンドから行いますのでターミナルを起動してください。

WindowsならGit Bashを起動。Macならターミナルを起動します。

 

Homestead vagrant box のダウンロード

 

以下のコマンドを実行してください。

 

$ vagrant box add laravel/homestead

 

 Enter your choice: と使用する仮想化とソフトウェア聞かれます。
該当するものを選択して Enter を押してください。(今回は3を選択)

僕は以下の選択肢がでました。WindowsとMacどちらでも一緒でした。

 

 

Homestead のダウンロード

 

HomesteadはLaravelの環境をまとめたパッケージファイルです。

任意のディレクトリにHomesteadファイルをダウンロードすることで使用します。

今回はUser/{userName}/配下に/appというフォルダを作成するとして以下のコマンドを実行してください。

 

・フォルダ作成

$ mkdir app

 

・appディレクトリに移動

$ cd ~/app

 

・Homesteadファイルのダウンロード

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

 

・ダウンロードファイルの確認

$ ls

 

 Homestead/ とターミナルに表示されていれば完了です。

 

SSH鍵の作成

 

SSHは暗号化でリモートコンピュータと通信するプロトコルです。Webでいうhttps://のような役割かなと解釈してます。

以下のコマンドを実行してください。

 

・ホームディレクトリに移動

$ cd ~/

 

・SSH鍵の存在確認

$ ls -la I grep .ssh

 

鍵の有無で結果が異なります。

・ない場合は以下のような結果

ls: cannot access 'I': No such file or directory
ls: cannot access 'grep': No such file or directory
ls: cannot access '.ssh': No such file or directory

・ある場合は以下の文字が表示される(抜粋)
id_rsa
id_rsa.pub

 

ない場合は以下のコマンドを実行します。

 

・SSH鍵を作成する

$ ssh-keygen -t rsa

 

 Enter file in which to save the key と表示されたらEnterを押します。

 Enter password とパスワードを求められるので任意のパスワードを入力して Enter 
再度パスワードを求められるのでもう一度入力して Enter 

※パスワードは表示されません

 

以上でSSH鍵の作成の完了です。

 

設定ファイルの作成/編集

 

次に先ほどダウンロードしたHomesteadファイルの設定ファイルを作成し編集していきます。

ここでホストOSやゲストOSのディレクトリやSSH鍵での接続を定義していきます。

以下のコマンドを実行してください。

 

・Homesteadディレクトリに移動

$ cd ~/app/Homestead

 

・設定ファイルの作成

$ bash init.sh

 

 Homestead initialized! と表示されていれば完了です。この時に Homestead.yaml というファイルが作成されます。

 

・設定ファイルの編集

$ vim Homestead.yaml

 

以下のような設定内容が表示されますので を入力してINSERTモードに変更して編集してください。

 

・Homestead.yaml

ip: "192.168.10.10"  #接続先のIPアドレス
memory: 2048  #割り当てるメモリ
cpus: 1  #同CPUのコア数
provider: virtualbox  #VMのホスト

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

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

folders:
    - map: ~/app  #ローカルディレクトリ
      to: /home/vagrant/Code  #VMのディレクトリ

sites:
    - map: homestead.test  #ホスト名
      to: /home/vagrant/Code/Laravel/public  #Web上の公開ディレクトリ

databases:
    - homestead
以下省略

 

編集が完了しましたら Esc でINSERTモード解除。
 :wq を入力し Enter で上書き保存します。

 

仮想マシンに接続-Laravelプロジェクトの作成

 

設定は完了ですので接続を確認してからLaravelのプロジェクトを作成しましょう。

以下のコマンドを実行してください。

 

・ディレクトリの移動

$ cd ~/app/Homestead

 

・仮想マシンの起動

$ vagrant up

 

VirtualBoxを確認して左のメニューに「Homestead-7」が実行中になっていれば問題なく起動できるかと思います。

 

・SSH接続で仮想マシンを操作

$ vagrant ssh

 

・仮想マシン上のディレクトリに移動

$ cd code/

 

・Laravelプロジェクトの作成

$ composer create-project laravel/laravel --prefer-dist ProjectName

 

最後にHomestead.yamlで設定したIP(デフォで192.168.10.10)にブラウザからアクセスするとLaravelのトップ画面が表示されます。

 

 

お疲れ様です。

最後にSSH接続を解除して仮想マシンを停止しましょう。

 

・SSH接続の解除

$ logout

 

・仮想マシンの停止

$ vagrat halt

 

エラー対応

 

おまけで環境構築でのエラーと対応をまとめます。

 

ネットワーク接続エラー

 

Q.以下のようなネットワークエラーがおきた

The specified host network collides with a non-hostonly network!

 

原因:Homestead.yamlでのIPアドレスとローカルIPアドレスが同じになっているのが原因

対策:Homestead.yamlのIP設定を変更する

 

仮想マシンがタイムアウトする

 

Q.以下のようなネットワークエラーがおきた

Timed out while waiting for the machine to boot.

 

原因:仮想化支援機能が有効になっていない
対策:BIOSの設定を変更する。

詳細:

コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化をクリックし「Hyper-v」のチェックを入れて再起動する。

これはWindowsの場合でマックは最初から仮想化支援ができているはずなので問題ないと思います。(深く追求はしてない)

 

仮想マシンが起動しない

 

Q.そもそも仮想マシンが起動しない。vagrant upしてもシェルがコマンドを認識しない

原因:WindowsのOSが原因
対策:根本はPCの買い替え

詳細:

以前Linuxの勉強でVirtualBoxで使用時にシェルが全く起動しなくて原因不明で頓挫したことがありました。

気分を変えてMacでやってみたら問題なくシェルが起動して、当時はとりあえず動いたしと深く考えず放置していたら今回の環境構築でも同じくvgrant up の時に仮想マシンが立ち上がらなく今回しっかり調べてみました。

原因としてはWindows 10 HomeProfessional なのかということでした。

Homeでは一個前でのエラー対策に記述した仮想化支援機能の有効化ができないようです。

つまり根本的に積んでいるため対策としては以下のようにするしかないようです。

 

1.professionalを買う
2.Macでやる
3.UbuntuでもcentOSでもいいから入れて、そのOS上で動かしてみる。

 

この記事で確信を得たので同じような状況になっている人がいましたら参考にしてみてください。

 

Windows10 Home 64bit でDockerするならWindows10 ProかBizspark!
Windows10 HomeのDocker難民です。以前、Windows10(Virtualbox/Vagrant構築済)にDockerを立てると既存VMがコケる(2016年11月)で、Windows10 HomeでVirtualBox×Dockerで上手くいかなかった。あれから9ヶ月くらい過ぎた。その途中、Qiita...

 

さいごに

 

まとめとして一連の流れをざっくりとした図にしてみました。

 

 

環境構築は最初はやっぱり大変ですね。新しい開発環境がでてきたらまずはやってみて記事にしてプログラミングの一番の挫折ポイントを少しでも減らせるよう今後とも記事にしていこうと思います。

この記事を気に入っていただけましたらTwitterdでもプログラミングに関してのツイートをリアルタイムでしていますので
ご一緒にフォローもお願いします。

 

スポンサーリンク
あっきー

元キャバクラ店長から未経験でエンジニアに転職した異端児。

「週4の5時間勤務、月収100万円」を実現させ、ゆるりと生きることを目標に日々パソコンと奮闘している。

自分の経験を元に、未経験からでも挫折しないプログラミングの勉強方法や最新技術や情報などを発信していきます。

あっきーをフォローする
LaravelPHP
\良い記事だったらシェアしてね!/
スポンサーリンク
駆け出しエンジニアのつぶやき