【Mac】HomesteadとVagrantでLaravelの環境を構築してみよう

 今日は実に気持ちの良い天気ですね。春の到来を徐々に感じる時期になってきましたね。

 さて、日頃から使用することの多い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で構築する方法を紹介しました。

 仮想環境があると何かと便利で効率的に作業ができるのでいいですね。

 てことで、今回はここまで!また!

お仕事のご相談・ご依頼
お気軽にお問い合わせください!

お仕事の依頼はこちら

シェアありがとうございます!

タグ
laravel PHP

著者プロフィール

Taka

東京、奄美大島を拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。いろいろな人の話しを聞くのが好きなので、このブログを通して多くの人と繋がりが出来たら嬉しいです。noteとInstagramもやっているのでフォローしてくれたらありがたいです!

人気記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です