概要
前回の記事(PHP7.1+Laravel5.x+Nginx+php-fpmな仮想環境構築)の改良版。
ホストOSとゲストOSで共有フォルダを設けて、ホストOS側でファイルを編集できる開発環境を作る。 共有フォルダを用いることで、ホストOS側でIDEを使ったファイル編集が可能になり、ゲストOSはDBのmigrate以外は基本的に触らずにLaravelプロジェクトページを開くことが出来る。
リポジトリは以下の通り。
環境
ホストOS
- macOS High Sierra (version 10.13.1)
- VirtualBox 5.2.0
- Vagrant 2.0.1
- ansible 2.4.1.0
ゲストOS
構築手順
ホストOS(mac)での準備
composerをインストールする
laravel
コマンドをインストールするのに使用する。
$ brew install homebrew/php/composer
laravelインストーラをダウンロードする
Laravelプロジェクトを作製するためのlaravel
インストーラをダウンロードする。
$ composer global require "laravel/installer"
laravel
コマンドを実行するためのパスを通す。
$ echo "path=(${HOME}/.composer/vendor/bin ${path})" >>${HOME}/.zshrc
.zshrc
を再読込みする。
$ source ~/.zshrc
ここまででLaravelプロジェクト作製用コマンドの準備が完了した。
ゲストOS(仮想マシン)の用意
リポジトリをcloneする
リポジトリを公開してるので、まずはそこからcloneする。
$ git clone https://github.com/kkznch/laravelvm.git
仮想マシンを起動する
cloneしたリポジトリ内でvagrant
コマンドを使って仮想マシンを起動する。
--provision
オプションはVagrantfile内で指定したプロビジョニング用のコマンドを実行する。
今回は中でansible
コマンドを実行している。
$ cd laravelvm $ vagrant up --provision
SSH接続のための設定をする
$ vagrant ssh-config >> ~/.ssh/config
この時点ではIPアドレスとポート番号がデフォルトのままなので、書き換える。
$ emacs ~/.ssh/config
Host laravelvm HostName 192.168.16.132 # 変更部分 User vagrant Port 22 # 変更部分 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/kkz/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL
Laravelプロジェクトを作成する
仮想マシンはリポジトリ内にあるshared
フォルダを共有フォルダとして仮想マシン内部の/var/www
にマウントする。
また、仮想マシンは/var/www/laravel/public
をドキュメントルートとしているため、shared
フォルダ内にlaravel
という名前でLaravelプロジェクトを作成すればよい。
$ pwd /path/to/laravelvm $ ls Vagrantfile playbook shared $ cd shared
以下のコマンドでLaravelプロジェクトが作製される。
$ laravel new laravel
接続確認
ブラウザで以下のURLにアクセする。
LaravelのTopページが表示されればOK。
Laravelプロジェクト編集
ホストOS(mac)にインストールされているIDEでLaravelプロジェクトを開き、コードを編集していく。 このとき、IDEにPhpStormを使っていれば楽になれる(デバッグ的な意味で)。 ファイル編集後はブラウザから上記URLにアクセスするだけでページが更新されているのが分かる。これが非常に楽ちん。
考察
仮想マシンは起動しておくだけでいいし、編集もローカルのIDEを使用して出来るのでかなり良い。 ただ、データベースの更新などを行う際は仮想マシン内で操作を行う必要がある。