Laravel Homesteadインストール

Laravelの開発環境を構築するためにはさまざまな方法がありますが、今回はLaravel Homesteadを利用した方法を説明しています。Laravel Homesteadは仮想化技術を利用しているため仮想化を実現するためのソフトウェアVitualBoxとそれを支えるVagrantが必要となります。それらのソフトのインストールが必要になりますが、ローカルのPCにPHPやウェブサーバ、DBなどのソフトウェアを個別にインストールし管理していくことと比較すればそれほど難しい設定ではありません。
本文書では、mac OSはCatalina、Laravelのバージョンは6.xをインストールします。
MacではHomestead以外にもLaravel Valetを使ってLaravel環境を構築することができます。Windowsもその他の選択肢としてXAMPPを使った方法もあります。
MacではHomestead, Valetを利用せず直接OS上でLaravel環境を構築することも可能です。しかし、OSに直接パッケージをインストールする場合はそれらの管理が煩雑になります。
目次
VirtualBox
VitualBoxとは
Virtual BoxはOS上に別のOSを稼働させることができる仮想化ソフトウェアです。1台のPC上で複数のOSを同時に利用することができます。今回はLaravel Homesteadを利用して、mac OS上でLinux OSのUbuntuを稼働させ, UbuntuにLaravelをインストールします。
Vitual Boxのインストール
VirtualBoxはVitualBoxのホームページ上からパッケージをダウンロードすることでインストールを行うことができます。
ホームページにアクセスし下記画面中央部にあるVitualBox paltform packageからOS X hostsをクリックします。パッケージのダウンロードが開始されます。

下記のメッセージが表示されますが、OKボタンをクリックしてください。

インストール画面が表示されるので左上のVirtualBox.pkgをダブルクリックしてください。

確認画面が表示されますが、そのまま続けるボタンをクリックしてインストールを進めてください。


インストールボタンが表示されるのでインストールボタンをクリックするとインストールが開始されます。

パスワードを聞かれるのでパスワードを入力するかTouch IDがある場合は指紋認証を行ってください。
そのままインストールを続けると機能拡張がブロックされるためセキュリティの環境設定を開いて許可する必要があります。

セキュリティとプライバシーの画面の左下にある変更するにはカギをクリックしますのアイコンをクリックしてください。

パスワードを入力するかTouch IDがある場合は使用してください。

App Storeと確認済みの開発元からのアプリケーションの許可ボタンをクリックしてください。先程ブロックされた処理が許可されます。

インストールがブロックされたのでインストーラをゴミ箱を入れるかどうか確認画面がでますが、ここでは残すを必ず選択してください。

インストールの最初の画面に戻りまた最初からインストールを行う必要がありますが、今度はブロックされずに進めます。

インストールが完了し下記の画面が表示されたらVirtualBoxのインストールは完了です。

インストールパッケージをゴミ箱に捨てるか確認画面が表示されますが、ここでは捨てるを選択して大丈夫です。
Vagrant
Vagrantとは
Vagrantを利用すると仮想化環境の構築、操作を簡単に行うことができます。
VagrantはOS、ソフトウェア情報をまとめたBoxを利用して仮想マシン上にOS、ソフトウェア環境を構築していきます。Boxを利用することでだれでも同じ環境を構築することができます。Laravel HomesteadのBoxが作成されているので、そのBoxを利用することで短時間でLaravel環境を構築することができます。


Vagrantのインストール
VagrantもVirtualBoxと同様に公式ホームページからパッケージをダウンロードしてインストールを行います。
Vagrantのホームページにアクセス後、画面下部の中央にあるDownloadボタンをクリックしてください。

Download画面を下にスクロールしてmacOS 64bitをクリックしてください。パッケージのダウンロードが開始されるので、ダウンロードが完了したらパッケージをダブルクリックしてください。

インストール画面が表示されるので、vagrant.pkgをダブルクリックしてください。

vagrant.pkgが悪質なソフトウェアかもしれないということで開くことができないため、セキュリティとプライバシーの設定が必要になります。

メニューバーからシステム環境設定を開いて、セキュリティとプライバシーのアイコンをクリックしてください。ここでは右中央にあります。

セキュリティとプライバシー画面が表示されるので、下にある”vagrant.pkgは開発元を確認できないため、使用がブロックされました”の右にあるこのまま開くボタンをクリックしてください。

下記の画面が表示されるので、開くボタンをクリックしてください。

インストールの画面が表示されるので続けるをクリックしてください。

パスワードを聞かれるので、パスワードを使用するかTouch IDを使用してください。

そのままインストールを進め下記の画面が表示されたら、Vagrantのインストールは完了です。

インストーラーをゴミ箱に入れるか確認画面がでるので、ゴミ箱に入れるのボタンをクリックしてください。

Homestead Vagrant Boxインストール
Vitrual BoxとVagrantをインストールした後は、Laravel用の仮想マシンの作成に必要なlaravel/homesteadのboxをvagrant addコマンドを実行してダウンロードします。
vagrant box addコマンドは環境にもよりますが時間がかかるので時間に余裕がある時に実施してください。実行した環境では30分程度でした。
OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54 vagrantで実行に失敗。再度実行すると上記のように成功しました。2回目は途中からの再開なので時間はあまりかかりませんでした。

vagrant box listを実行するとダウンロードしたboxのlaravel/homesteadの情報が表示されます。
Homesteadの初期設定
gitコマンドでhomesteadのリポジトリのクローン(複製)を~/Homesteadディレクトリの中に保存します。Homesteadディレクトリは自動で作成されるので、事前作成は必要ありません。リポジトリの中には、仮想マシンの作成に利用するVagrantfileなどの設定ファイルやinit.shなどのスクリプトファイルが含まれています。
Homesteadディレクトリに移動し、下記のコマンドを実行します。Homesteadの設定に必要なHomestead.yamlファイルがディレクトリ内に作成されます。このファイルを変更することで各自の環境に合わせてた仮想マシンを作成することができます。
SSH Keyの作成
vagrantに接続するためのsshキーの作成を行います。ssh-keygen -t rsaコマンドでキーの作成を行うことができます。実行後.sshディレクトリの下に秘密鍵と公開鍵のid_rsa, id_rsa.pubファイルが作成されます。
Homestead.yamlファイルの説明
Homestead.yamlでは仮想化マシン(OS)のIPアドレス、ドメインの設定やLaravelをインストールを行うディレクトリの設定を行います。Optional Softwareの追加設定もここで行います。
Homestead.yamlのデフォルト設定は下記の通りです。
ip、merory, cpus:は仮想マシン(OS)に割り当てられるリソースです。
provider:はどの仮想化ソフトウェアを利用するか設定する項目でここではVitualboxを利用するのでvitualboxとなります。VMWARE等も使用可能です。
authorizeとkeys:はsshキー作成で作成したキーのパスが設定されています。~(チルダ)はユーザのホームディレクトリを表し、本環境では/Users/macとなります。
folders:はローカルマシンのディレクトリと仮想マシン上のOSのディレクトリの結びつける設定です。ローカルマシンの/Users/mac/codeにアクセスすれば仮想マシン上の/home/vagrant/codeの中身を確認することができます。
sites:toは公開ディレクトリです。ブラウザでhomestead.testにアクセスすると/home/vagrant/code/public下のindex.htmlやindex.phpファイルの中身が表示されます。
databases:指定した名前のデータベースが仮想マシンのOS上のMySQLに作成されます。(後ほど確認)
features:mariadbをtrueにするとmysqlの代わりにmariadbがインストールされます。追加のソフトウェアがある場合はここに追加します。
Homestead.yamlファイルの更新
今回はhomestead.yamlファイルの中のsitesを以下のように書き換えます。
/home/vagrant/codeの下にblogという名前がありますが、この後Laravelプロジェクトをblogという名前で作成する予定です。
codeディレクトリの作成
ローカルマシンのユーザディレクトリにcodeディレクトリを作成します。
hostsファイルの追加
Homestead.yamlで設定されているIPアドレスとドメイン名を/etc/hostsファイルに追加します。
仮想マシンの起動
仮想マシンを起動するまでの設定が完了したので、vagrant upコマンドで仮想マシンを起動します。
起動完了後、statusコマンドで稼働状況を確認します。runningと表示され稼働していることがわかります。
Homestead.yamlファイルなど更新した場合は一度vagrant haltコマンドで停止することが可能です。
停止した場合のステータスも確認しておきます。poweroffとなっていることを確認することができます。
Laravel環境の構築
Laravelのインストール
vagrant upが完了したらsshコマンドでvagrantに接続します。
接続後、codeディレクトリの下でLaravelのプロジェクトの作成を行います。プロジェクトの名前は、homestead.yamlで設定したblogを使っています。
インストールが完了したら、ローカルマシン側から/Users/mac/codeにアクセスするとインストールしたLaravelのファイルにアクセスできることを確認してください。
ブラウザでhomestead.testにアクセスするとLaravelの初期画面が表示されれば、ここまでのすべての設定は正常に行われています。

データベースへの接続
mysqlコマンドを利用してMySQLデータベースへの接続を行います。
MySQLへの接続には2つのユーザアカウントで行うことができます。
- rootユーザ、パスワードはなし
- homesteadユーザ、パスワードはsecret
show databaseコマンドで作成されているデータベースを確認します。homesteadデータベースが存在することが確認できます。
データベースと接続ユーザの情報がわかったのでhomesteadの接続設定を.envファイルで行います。.envファイルを開いてデータベース接続のパラメータを下記のように設定します。
usersテーブルの作成についてはLaravelで事前にマイグレーションファイルが用意されているので、php artisan migrateコマンドを実行します。実行後下記のメッセージが表示されたら、homesteadデータベースへのテーブルの作成は完了しています。
コマンドラインでもテーブルの中身の確認を行うことができますがデータベース管理ソフトウェアのTablePlusを使って接続を行います。
インストール方法などについては下記の文書を参考にしてください。
TablePlusを起動して新規の接続でMySQLを選択します。

データベースへの接続に必要な情報を記述します。設定が完了したらConnectボタンをクリックしてください。

データベースへの接続が完了すると左側の列で作成されたテーブルを確認することができます。

