Homesteadを使ってLaravel開発環境を構築する手順を掲載します。
○ Homesteadについて
- 仮想マシン上にLaravelの開発環境を簡単に構築するための仕組みです。
- メリットのひとつとして、ローカル環境が汚れることを避けることができます。
- 設定ファイルでPHPのバージョンやWebサーバ(nginx、Apache)の指定ができます。
- VirtualBoxとVagrant(+ Git)の環境が整っていればHomesteadの導入は簡単です。
まとめると、HomesteadはLaravel開発環境を構築するにはとても便利なツールです。
以下手順はUbuntu 18.04環境にて確認しました。WindowsやMacを使用されている方は適宜読み替えていただく必要がありますm(_ _)m
目次
事前準備
VirtualBoxとVagrantをインストールする
先述したとおり、Homesteadを使用するにはVirtualBoxとVagrantをインストールしておく必要があります。VirtualBoxとVagrantのインストールについてはこちらのページにまとめてありますので参照ください。
Gitをインストールする
以下手順の中でGitを使用するところがありますのでインストールしておきます。GitのインストールはGit公式サイトを参照いただければと思います。
VirtualBox、Vagrant、GitをインストールできたらHomesteadを使ってLaravel開発環境を構築していきましょう。
HomesteadのVagrant Boxをダウンロード
Vagrant公式サイトからHomesteadのBoxをダウンロードします。
1 | vagrant box add laravel/homestead |
Homestead本体をダウンロード
GitHubからHomestead本体ををダウンロードします。つぎのコマンドを実行するにはローカル環境にGitがインストールされている必要があります。
1 2 3 4 | cd ~/ mkdir laravel-app cd laravel-app git clone https://github.com/laravel/homestead.git Homestead |
Homesteadを初期化します。
1 2 | cd Homestead bash init.sh |
「Homestead initialized!」と表示されれば初期化は完了です。
Homesteadの設定ファイルを編集します。
1 2 3 4 5 6 7 8 9 10 | vi Homestead.yaml # 以下はHomestead.yaml内のコードです。 # 以下のように編集します。 folders:↲ - map: ~/laravel-app to: /home/vagrant/code sites: - map: homestead.test to: /home/vagrant/code/laravel/public |
Homestead.yamlのfoldersのmapとtoのパスを変更します。foldersのmapはホストOS側のLaravelプロジェクトのパス、toはゲストOS側のパス。foldersで指定したパス内のファイルがゲストOSとホストOS間で共有されます。sitesのmapはURL(このあとhostsの書き換えにて説明)、toはホストOS側のlaravelのpublicディレクトリのパスを指定します。
秘密鍵を作成する
ホストOSからゲストOSにSSH通信で接続するために鍵ファイルを作成します。まずは鍵ファイルがあるか確認します。
1 2 | cd ~/.ssh ls -la | grep id_rsa |
id_rsaが表示されれば鍵ファイルは既に存在します。表示されない場合は以下のコマンドで作成してください。
1 | ssh-keygen -t rsa |
鍵ファイルが作成されたか確認します。
1 | ls -la ~/.ssh |
hostsファイルを編集する
hostsファイルの一番下につぎの設定を追加します。
1 | 192.168.10.10 homestead.test |
hostsファイルに設定を追加して、ブラウザから「http://homestead.test」にアクセスできるようにしています。IPアドレス192.168.10.10は先ほど編集したHomestead.yaml内のipプロパティで変更することができます。
Vagrantをプロビジョニングする
次にVagrantをプロビジョニングします。これがかなり時間がかかります。(2回目以降は1回目に比べて格段に早いです)
1 | vagrant up |
「A VirtualBox machine with the name ‘homestead’ already exists.〜〜」というエラーが出た場合は、以下のように設定を変更してみてください。
1 2 3 4 5 6 | cd ~/laravel-app/Homestead/scripts vi homestead.rb # config.vm.define settings['name'] ||= 'homestead'という記述を # config.vm.define settings['name'] ||= 'homestead02'のように # 仮想マシン名を変更します。 |
Composerを使ってLaravelをインストールする
Composerを使ってLaravelプロジェクトをインストールするためにまずは、SSH通信で仮想マシンに接続します。
1 2 | cd ~/laravel-app/Homestead vagrant ssh |
Laravelプロジェクトをインストールします。
1 2 3 4 5 6 7 | # 以下は仮想マシン上で実行します。 # composer create-project laravel/laravel --prefer-dist laravelの # 最後のlaravelの部分は任意のディレクトリ名で問題ありませんが、 # Homestead.yaml内でlaravelとしていたのでここではlaravelとします。 cd ~/code composer create-project laravel/laravel --prefer-dist laravel |
ブラウザから接続する
ブラウザからhttp://homestead.testにアクセスします。エラーが表示されたり、うまく表示できなかったら、Homestead.yamlのfoldersやsitesの設定を見直してみてください。
以上です。