今日は実に気持ちの良い天気ですね。春の到来を徐々に感じる時期になってきましたね。
さて、日頃から使用することの多いLaravelですが、今回はLaravelの仮想環境をHomesteadとVagrantを使って構築してみたいと思います。
環境
なお、今回の環境は以下の通りとなります。
今回の環境
- MacOS Mojave 10.14
- vagrant 2.2.3
- Laravel 5.8系
Vagrantインストール
では、早速環境構築していきましょう。
まずは、今回はvagrantを使用するのでvagrantのインストールをします。既にインストールされている方は飛ばしてください。
Vagrantの公式サイトのダウンロードページからMacOSのリンクをクリックしてdmgファイルをダウンロードします。
ダウンロードしたファイルを実行してインストールが完了したら、念のための下記コマンドでバージョンの確認をします。
$ vagrant version
Installed Version: 2.2.3
VirtualBoxインストール
Vagrantをインストールしたら一応VirtualBoxもインストールしておきましょう。
VirtualBoxはこちらからダウンロードできます。
MacOSに該当するファイルをダウンロードして実行してインストールしてください。
Homestead環境を構築
VagrantとVirtualBoxをインストールしたら下準備は完了です。
それでは、Laravelの公式サイトのHomesteadのチュートリアルに沿ってHomestead環境を構築していきます。
とりあえず、ホームディレクトリに移動してから諸々進めていきます。
$ cd ~
Homestead Vagrant Boxのインストール
まずは、HomesteadのVagrant Boxをインストールしていきます。
Vagrantをインストールしたばかりであれば何もBoxは出来ていないと思うので問題ありませんが、既にVagrantを使用しており他のBoxを作成している方は、一応Boxが起動されてないか確認しておきましょう。
### Boxの一覧表示
$ vagrant box list
もし、起動しているものがあれば下記コマンドで停止しておきます。
### 停止
$ vagrant halt
この一連の流れはVirtualBoxでも可能なので、GUIで操作したい方はVirtualBoxを使用してみてください。
VagrantのBoxの起動状況等を確認したら、下記コマンドでHomesteadのVagrant Boxをインストールします。
$ vagrant box add laravel/homestead
Homesteadのインストール
続いて、下記コマンドでHomesteadのインストールをします。
$ git clone https://github.com/laravel/homestead.git ~/Homestead
インストールが完了したらホームディレクトリに「Homestead」というディレクトリが出来ていると思うので、Homesteadディレクトリに移動しておきます。
$ cd ~/Homestead
公式サイトのガイドによれば最新の安定バージョンにチェックアウトするべきとのことなので、それに沿ってチェックアウトしておきます。最新の安定版はこちらのページで確認することができます。
現時点の最新の安定版はv8.2.0なので、このバージョンにチェックアウトします。
$ git checkout v8.2.0
Homestead.yamlの作成
クローンが完了したら、Homesteadの設定に必要なHomestead.yamlファイルを作成します。「Homestead」ディレクトリ内にHomestead.yamlファイルが既に出来ている方は飛ばしてください。ファイルがない場合は下記コマンドで生成しましょう。
$ bash init.sh
秘密鍵の生成
続いて、Homesteadの設定に秘密鍵が必要になってくるので生成しておきます。
まず、ホームディレクトリにある「.ssh」ディレクトリに移動します。
$ cd ~/.ssh
移動したら下記フォーマットで秘密鍵を生成します。
$ ssh-keygen -t rsa -C メールアドレス -f ファイル名
今回は「id_rsa_homestead」というファイル名で生成したいと思います。メールアドレスは適宜ご自身の環境に合わせて指定してください。
$ ssh-keygen -t rsa -C メールアドレス -f id_rsa_homestead
生成段階でパスフレーズを聞かれると思うので、任意のパスフレーズを設定しましょう。
これで秘密鍵が生成されると思います。念の為、秘密鍵が無事に生成されているか確認しておきます。
$ ls | grep "id_rsa_homestead"
Laravelをインストールするディレクトリの生成
続いて、最終的にLaravelをインストールするディレクトリをあらかじめ生成しておきます。
今回は、ホームディレクトリに「code」というディレクトリを生成したいと思います。
$ mkdir ~/code
Homesteadの設定
ここまで終わったら、Homestead.yamlファイルを開いて環境に合わせて編集して設定していきます。
今回は下記の通り環境に合わせて編集します。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa_homestead.pub
keys:
- ~/.ssh/id_rsa_homestead
folders:
- map: ~/code/
to: /home/vagrant/code/
sites:
- map: homestead.test
to: /home/vagrant/code/public
databases:
- homestead
重要な箇所は、「provider」、「authorize」、「keys」、「folders」、「sites」になります。
providerの箇所は今回使用するプロバイダーになるので「virtualbox」を設定し、「authorize」と「keys」の箇所にはさきほど生成した秘密鍵の場所を設定します。「folders」の箇所は「map」がローカルの場所になるので、さきほど生成したディレクトリ(~/code)を設定します。「site」の「map」にはブラウザでアクセスする際の開発用ドメインを設定します。
hostsファイルの編集
続いて、開発用ドメインにローカルからアクセスできるようにMacのhostsファイルを編集します。
hostsファイルは「/etc/hosts」にあるので、viコマンド等で開きます。
$ sudo vi /etc/hosts
hostsファイルを開いたら下記のコードを追記します。
192.168.10.10 homestead.test
追記したら、「:wq」コマンドで保存します。
これで一通りHomesteadの環境構築は完了です。
Vagrantを起動してSSHログイン
では、実際にVagrantを起動していきましょう。
まず、Homesteadディレクトリに移動します。
$ cd ~/homestead
続いて、下記コマンドでHomesteadのVagrant Boxを起動します。
$ vagrant up
起動中パスワードを聞かれると思うので、Macのパスワードを入力します。
無事に起動できたら、今度は下記コマンドでsshログインをします。
$ vagrant ssh
ログインしたら「/home/vagrant/」ディレクトリに「code」というディレクトリがあるか確認しましょう。
$ ls | grep "code"
code
もしできていない場合は作成してください。
Laravelのインストール
そうしましたら、「code」ディレクトリに移動してLaravelをインストールしていきます。
まずは、「code」ディレクトリに移動。
$ cd code
code
移動したら、Lravelをインストールします。今回は最新版の5.8をインストールしたいと思います。プロジェクト名はとりあえず「laravel」にしておきます。
$ composer create-project --prefer-dist laravel/laravel laravel "5.8.*"
これでLaravelのインストールが完了しました。
codeディレクトリに「laravel」というディレクトリが出来ていると思います。
$ ls
laravel
Mac側の「~/code/」にも「laravel」というディレクトリが出来ていると思います。
Homesteadの再設定
これで基本的な設定は完了なのですが、この状態で「http://homestead.test/」にアクセスしてみても「No input file specified.」と表示されてlaravelの画面が表示されないと思います。
これはHomestead.yamlファイルで設定した「folders」の箇所が間違っているということなので再度修正しなければなりません。
一旦「exit」でログアウトして、Vagrantも一旦停止します。
$ exit
$ vagrant halt
再度、Homestead.yamlファイルを開いて「folders」の「map」を下記のように編集します。
folders:
- map: ~/code/laravel
to: /home/vagrant/code/
そして再度、Vagrantを起動すれば完了です。
$ vagrant up
「http://homestead.test/」にアクセスしてみるとLaravelの画面が表示されると思います。
まとめ
ということで、今回はLaravelの仮想開発環境をHomesteadとVagrantで構築する方法を紹介しました。
仮想環境があると何かと便利で効率的に作業ができるのでいいですね。
てことで、今回はここまで!また!