はじめに
Laravel 公式で提供されている Homestead と Vagrant box を利用し, ホストOS ( Windows7 ) 上に Laravel の開発環境を構築する手順をまとめています。
なお, 第02章 は 7968氏の記事 を基にさせていただきました。Laravel / VirtualBox / Vagrant / Homestead / Composer に関する説明も充実していますので, 初学者の方は 7968氏の記事 を先に読むことをお勧めします。
- 第1回 -前編-
- 第01章 事前準備
- 第02章 Laravel 開発環境の構築
- 第1回 -後編-
- 第03章 複数の Laravel プロジェクトに対応 ( サブドメイン利用 )
- 参考サイト紹介
- 第2回
- Laravel 開発環境の構築 ( PHP5.6 + PHP7.0 + PHP7.1 )
- 第3回
- Eclipse で Laravel の入力補完が効くようにする ( laravel-ide-helper )
前提条件
この記事を書いた時点での環境と各ソフトのバージョンは下表の通りです。
OS | Git for Windows | VirtualBox | Vagrant |
---|---|---|---|
Windows7 Professional SP1 64bit | 2.15.0 | 5.2.0 r118431 | 2.0.1 |
第01章 事前準備
ここでは以下のソフトをインストールしていきます。
Git fow Windows の導入
今回の開発環境の構築には "Git BASH というコマンドラインツール" を使用します。ここでは, 事前準備として Git BASH が含まれている Git fow Windows の導入を行います。
Git BASH とは?
Git BASH は公式サイトで下記のように説明されています。
引用 : Git for Windows
Git for Windows provides a BASH emulation used to run Git from the command line. *NIX users should feel right at home, as the BASH emulation behaves just like the "git" command in LINUX and UNIX environments.
和訳すると下記のような感じでしょうか。。。
Git for Windows はコマンドラインから Git を実行するための BASH エミュレーションを提供します。BASH エミュレーションは LINUX や UNIX 環境での git コマンドと同様に動作するため, *NIX ユーザーは使いやすく感じるはずです。
では早速, インストールしていきましょう。
Git fow Windows の [ダウンロード] からインストーラーをダウンロードして実行します。
コンポーネントの選択。下記の通りにチェックを付けて [Next] をクリック。
- Additional icons
- On the Desktop ( デスクトップにショートカットアイコンを作成する )
- Windows Explorer integration ( エクスプローラーの右クリックメニューに追加 )
- Git Bash Here
- Git GUI Here
- Git LFS (Large File Support) ( 大きなバイナリファイルのサポート )
- Associate .git* configuration files with the default text editor ( git のコンフィグファイルをデフォルトのテキストエディタに関連付ける )
- Associate .sh files to be run with Bash ( シェルスクリプトが Bash で実行されるように関連付ける )
- Use a TrueType font in all console windows ( コンソールで TrueType フォントを使用する )
- Check daily for Git for Windows update ( Git for windows の更新を毎日チェックする )
スタートメニューへの登録設定。そのまま [Next] をクリック。
環境変数に関する設定。[Use Git From Git Bash Only] を選択して [Next] をクリック。
SSL ライブラリの選択。そのまま [Next] をクリック。
開業コードの取り扱いに関する設定。[Checkout as-is, commit Unix-style line endings] を選択して [Next] をクリック。
Git で使用するコンソールの選択。そのまま [Next] をクリック。
オプションに関する設定。下記の通りにチェックを付けて [Install] をクリック。
- Enable file system caching ( ファイルキャッシュを有効にする )
- Enable Git Credential Manager ( 2段階認証に対応する )
- Enable symbolic links ( シンボリックリンクを有効にする )
VirtualBox の導入
今回の開発環境の構築には VirtualBox という "仮想化ソフトウェア" を使用します。VirtualBox については 7968氏の記事 ( 第2章 VirtualBox とは ) で詳しく説明されていますので, そちらを参照してください。
では早速, インストールしていきましょう。
Oracle VM VirtualBox Base Packages からインストーラーをダウンロードして実行します。
オプションに関する設定。そのまま [Next] をクリック。
とりあえず今は VirtualBox を起動する必要はないので, [Start Oracle VM VirtualBox ~] のチェックは外して [Finish] をクリック。
Vagrant の導入
今回の開発環境の構築には Vagrant という "仮想環境を操作する CUI を提供してくれるソフトウェア" を使用します。Vagrant については 7968氏の記事 ( 第3章 Vagrant とは ) で詳しく説明されていますので, そちらを参照してください。
では早速, インストールしていきましょう。
Vagrant からインストーラーをダウンロードして実行します。
ライセンスの確認。[I accept the terms of License Agreement] にチェックを付けて [Next] をクリック。
第02章 Laravel 開発環境の構築
冒頭でもお話した通り, 以下の手順は 7968氏の記事 を基にさせていただきました。バージョンの違いによる微妙な差異がありましたので, この記事は 2017年11月27日 時点での最新バージョンで記載しています。
Step.01 laravel/homestead ( vagrant box ) のダウンロード
[第01章 事前準備]("第01章 事前準備") の手順通りに作業した場合, デスクトップに "Git Bash のショートカット" が作成されているはずですので, そのアイコンから Git Bash を起動します。
Git Bash ( 以下, "ターミナル" と呼ぶ ) が起動したら, 下記のコマンドを入力して vagrant box をダウンロードします。
slangsoft@win7 MINGW64 ~
$ vagrant box add laravel/homestead <-- 入力
仮想化ソフトウェアとして何を使用するか訊かれますので, ここでは virtualbox ( 2 ) を入力して Enter を押してください。これでダウンロードが開始されます。ダウンロードの完了までには少し時間がかかります。私の環境 ( 自宅の Wi-Fi ) では 12 分程度かかりました。
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) parallels
2) virtualbox
3) vmware_desktop
Enter your choice: 2 <-- 入力
下記のように [ Successfully ] と表示されればダウンロードは完了です。
==> box: Adding box 'laravel/homestead' (v4.0.0) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/4.0.0/providers/virtualbox.box
box:
==> box: Successfully added box 'laravel/homestead' (v4.0.0) for 'virtualbox'! <-- [Successfully] と表示されればダウンロード完了!
slangsoft@win7 MINGW64 ~
Step.02 Homstead のダウンロード
ホスト OS ( ここでは Windows7 ) のエクスプローラーを使って任意のディレクトリを作成し, そこに Homestead のファイルをダウンロードします。ディレクトリの作成場所はターミナルからアクセスしやすい場所が良いと思います。
この記事では, ホームディレクトリ [ c:\Users\ユーザー名\ ] の直下に [ LaravelProjects ] というディレクトリを作成したと仮定して説明していきます。
/Users/ユーザー名/LaravelProjects/
ディレクトリを作成したら, そのディレクトリに移動します。
[ LaravelProjects ] ディレクトリに移動するには下記のコマンドを入力します。
slangsoft@win7 MINGW64 ~
$ cd ~/LaravelProjects <-- 入力
[ LaravelProjects ] ディレクトリに移動したら, 続けて下記のコマンドを入力し, Homestead のファイルをダウンロードします。
slangsoft@win7 ~/LaravelProjects
$ git clone https://github.com/laravel/homestead.git Homestead <-- 入力
下記のように表示されればダウンロードは完了です。
Cloning into 'Homestead'...
remote: Counting objects: 2662, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 2662 (delta 5), reused 11 (delta 5), pack-reused 2643
Receiving objects: 100% (2662/2662), 503.03 KiB | 545.00 KiB/s, done.
Resolving deltas: 100% (1567/1567), done. <-- [done.] と表示されれば完了!
ホスト OS ( ここでは Windows7 ) のエクスプローラーを使って [ C:\Users\ユーザー名\LaravelProjects ] を開くと [ Homestead ] ディレクトリが作成されていることが確認できます。
Step.03 Laravel Homestead の設定ファイル作成
ターミナル上で [ Homestead ] ディレクトリに移動してください。
今回は [ LaravelProjects ] ディレクトリ配下に Homestead のファイルをダウンロードしましたので, 下記のディレクトリに移動します。
Users\ユーザー名\LaravelProjects\Homestead
上記ディレクトリに移動するには, 下記のコマンドを入力します。
slangsoft@win7 ~/LaravelProjects
$ cd ~/LaravelProjects/Homestead <-- 入力
[ Homestead ] ディレクトリに移動したら, 下記のコマンドを入力してください。
slangsoft@win7 ~/LaravelProjects/Homestead (master)
$ bash init.sh <-- 入力
下記のように表示されれば, 設定ファイル ( Homestead.yaml ) の作成は完了です。
Homestead initialized!
Step.04 SSH鍵ファイル作成
ホスト OS とゲスト OS とのやり取りは SSH で行いますので, そこで必要になる SSH の鍵ファイル ( id_rsa と id_rsa.pub ) を作成します。
まずは, 既に SSH 鍵ファイルが存在しないか確認します。
ホームディレクトリに移動し, 下記コマンドを入力してください。
slangsoft@win7 ~/LaravelProjects/Homestead (master)
$ cd ~/ <-- 入力 : ホームディレクトリに移動
$ ls -la I grep .ssh <-- 入力 : SSH 鍵ファイルの存在確認
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
余談ですが, SSH 鍵ファイルが存在する場合は下記のように表示されます。
ls: cannot access 'I': No such file or directory
ls: cannot access 'grep': No such file or directory
.ssh:
total 21
drwxr-xr-x 1 BP003 197121 0 11月 27 00:17 ./
drwxr-xr-x 1 BP003 197121 0 11月 27 00:17 ../
-rw-r--r-- 1 BP003 197121 1766 11月 25 22:33 id_rsa
-rw-r--r-- 1 BP003 197121 394 11月 25 22:33 id_rsa.pub
id_rsa と id_rsa.pub が見つからない場合は, 下記のコマンドを入力して作成します。
slangsoft@win7 ~
$ ssh-keygen -t rsa <-- 入力
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/slangsoft/.ssh/id_rsa): <-- 入力 : そのまま Enter
Created directory '/c/Users/slangsoft/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/slangsoft/.ssh/id_rsa.
Your public key has been saved in /c/Users/slangsoft/.ssh/id_rsa.pub.
以下省略
Step.05 Homestead の設定ファイルの編集
まず, Windows7 のエクスプローラーで下記ディレクトリを開きます。
C:\Users\[ユーザー名]\LaravelProjects\Homestead
ここに Homestead の設定ファイル ( Homestead.yaml ) がありますので, このファイルをテキストエディタ ( LF 改行に対応したもの) で開きます。私は サクラエディタ を使用しています。ちなみに Windows 標準のメモ帳では上手く編集できません。
変更前の設定ファイルは下記の通り。
---
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.test
to: /home/vagrant/code/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
このファイルの [ folders: ] と [ sites: ] の設定を下記のように修正して保存してください。
folders:
- map: ~/LaravelProjects <-- ここを修正
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/TestProject/public <-- ここを修正
今回は, [ folders: ] と [ sites: ] のみ変更しましたが, Homestead.yaml では下記の設定が可能です。
引用 : Laravel超入門 開発環境の構築 (VirtualBox + Vagrant + Homestead + Composer)
項目 | 内容 |
---|---|
ip | Vagrant に割り当てられるIPアドレス。 |
memory | 仮想サーバに割り当てるメモリの容量。 |
cpus | CPUの数。 |
provider | 利用する仮想化ソフトウェアの指定。Vagrant では仮想化ソフトウェアのことをプロバイダと呼びます。 |
authorize | SSH公開鍵のディレクトリ。 |
keys | SSH秘密鍵のディレクトリ。 |
folders | 共有フォルダの指定です。map がホストOS側のディレクトリで、to がゲストOS側のディレクトリ。 |
sites | ホスト名 homestead.app でアクセスしたときに to に記載した仮想マシンのディレクトリを参照。 |
databases | データベース。 |
Step.06 仮想マシンの起動
まずターミナル上で [ Homestead ] ディレクトリに移動します。
slangsoft@win7 ~
$ cd ~/LaravelProjects/Homestead <-- 入力
続けて, 以下のコマンドを実行することで仮想マシンを起動することができます。起動途中で何度か Windows のアクセス許可を求めるダイアログが表示されますので, すべて許可してください。
slangsoft@win7 ~/LaravelProjects/Homestead (master)
$ vagrant up <-- 入力
Step.07 仮想マシン上で Composer を利用して Laravel ファイルをダウンロード
[ vagrant up ] で仮想マシンは起動されていますので, 仮想マシンを操作するために SSH で仮想マシンにログインします。
ターミナル ( Git Bash ) から SSH で仮想マシンにログインするには, 下記のコマンドを入力してください。
slangsoft@win7 ~/LaravelProjects/Homestead (master)
$ vagrant ssh <-- 入力
上記の方法でターミナル ( Git Bash ) から SSH でログインできますが, ここでは RLogin を使用します。
RLogin を使用して仮想サーバにログインするには, 下図のように設定します。
- Server Address
- [ Homestead.yaml ] の [ ip: ] に設定されている IP アドレス
- User Name
- vagrant
- Password/phrase
- vagrant
ここからは RLogin を使用している前提で説明しますが, ターミナルからログインした場合も操作手順に違いはありません。
まず, 下記コマンドを入力して [ code ] ディレクトリに移動します。
vagrant@homestead:~$ cd ./code <-- 入力
次に, composer を使って Laravel のファイルをダウンロードします。
下記は記述例です。
composer create-project laravel/laravel --prefer-dist ディレクトリ名
今回, ディレクトリ名は [ TestProject ] にしますので, 下記のコマンドを実行します。
vagrant@homestead:~/code$ composer create-project laravel/laravel --prefer-dist TestProject <-- 入力
これでダウンロードが開始されます。ダウンロードの完了までには少し時間がかかります。私の環境 ( 自宅の Wi-Fi ) では 6 分程度かかりました。
ダウンロードが完了したら, Windows7 のエクスプローラーを使用して下記ディレクトリを確認してください。仮想マシン上にダウンロードしたはずの [ TestProject ] ディレクトリが作成されていると思います。
C:\Users\ユーザー名\LaravelProjects
これは, [ Homestead.yaml ] の [ folders: ] で設定した 2 つのディレクトリ ( [ map: ] と [to: ] が同期されているためです。この同期は VirtualBox の共有フォルダと呼ばれる機能で実現されています。
したがって, ローカルのファイルを修正すると, その修正が自動的に仮想マシン内のファイルにも反映されることになります。その逆も然りです。
Step.08 Laravel ページの表示
[ Homestead.yaml ] に記述した IPアドレスにブラウザからアクセスすると, 下記の Laravel ページが表示されます。
次に, ドメイン ( 今回は homestead.test ) でもアクセスできるように, Windows7 の hosts ファイルで IP と ドメインを関連付けます。
メモ帳を管理者権限で起動します。
[ ファイル(F) ] → [ 開く(O)... ] を実行し, [ ファイル名(N): ] 欄に下記のファイル名を入力して [ 開く(O) ] ボタンをクリックします。
C:\Windows\System32\drivers\etc\hosts
hosts ファイルの最終行に下記を追記し, 上書き保存してメモ帳を閉じます。
192.168.10.10 homestead.test
今度はブラウザから [ http://homestead.test ] にアクセスしてみてください。先ほどと同じ画面が表示されれば成功です。
Step.09 仮想マシンを停止する
仮想マシンを停止するには, Vagrantfile があるディレクトリ ( 今回の場合は [ Homestead ] ) に移動してから下記のコマンドを実行します。
slangsoft@win7 MINGW64 ~
$ cd ~/LaravelProjects/Homestead/ <-- 入力 : Vagrantfile があるディレクトリに移動
slangsoft@win7 MINGW64 ~/LaravelProjects/Homestead (master)
$ vagrant halt <-- 入力 : 仮想マシンの停止
Step.10 仮想マシンを起動する
仮想マシンを起動するには, Vagrantfile があるディレクトリ ( 今回の場合は [ Homestead ] ) に移動してから下記のコマンドを実行します。
slangsoft@win7 MINGW64 ~
$ cd ~/LaravelProjects/Homestead/ <-- 入力 : Vagrantfile があるディレクトリに移動
slangsoft@win7 MINGW64 ~/LaravelProjects/Homestead (master)
$ vagrant up <-- 入力 : 仮想マシンの起動