Web開発

【PHP】MacでLaravelのローカル環境を構築する方法(Virtualbox + Vagrant + homestead)

スポンサーリンク

概要

Macでローカル環境にLaravelの環境を構築する方法です。

一台のPCで環境を複数構築するのは大変なので、仮想環境(Virtualbox + Vagrant + homestead)を使用した環境の構築方法をここでは行います。

手順が多く初めての場合は大変ですが、手順通りに行うと仮想環境を構築することができると思います。

環境

  • macOS Ventura 13.1

Vagrantのインストール方法

Vagrant(ベイグラント)は仮想環境の構築、設定ができるソフトウェアです。

事前準備

Vagrantのインストールでは「Homebrew」を使用します。
まだインストールをされていない場合は、「Homebrewのインストールと使い方」という記事にまとめていますのでそちらを参照してください。

Vagrantをインストールする場合は、次のコマンドを実行してください。

brew install vagrant

以下のように出力されたらインストール成功です。

🍺  vagrant was successfully installed!

インストールされたバージョンの確認を行います。

vagrant -v
  • 記事の作成時点でのバージョンは、”Vagrant 2.3.4”です。

Virtualboxのインストール方法

Virtualboxをインストールする場合は、次のコマンドを実行してください。

brew install virtualbox 

途中で、パスワードを聞かれるのでパスワードを入力します。

以下のように出力されたらインストール成功です。

🍺  virtualbox was successfully installed!

VagrantでサポートしているVirtualboxのバージョンはVagrantの公式ホームページで確認ができます。

記事の作成時点で、”Vagrant 2.3.2”でサポートされているバージョンは、「4.0.x, 4.1.x, 4.2.x, 4.3.x, 5.0.x, 5.1.x, 5.2.x, 6.0.x, and 6.1.x」となっていますが、Virtualbox6.1は仮想環境の作成でエラーが発生してしまいます。Virtualbox7.0だと仮想環境は起動しました。

Vagrantのboxの作成

boxとは

Vagrantのboxは、作成する仮想マシンのベースのような物です。

boxの作成方法

  1. ユーザーディレクトリに移動します。
cd ~/
  1. boxにhomesteadを追加します。
vagrant box add laravel/homestead
  1. 使用するプロバイダーを聞かれるので、”2″を入力して”Enter”を入力します。
==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox

Enter your choice: 2
  1. 以下のようにメッセージが出力されたら作成完了です。
    (約10分ほど時間がかかります。)
==> box: Adding box 'laravel/homestead' (v12.2.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/12.2.0/providers/virtualbox.box
    box: Calculating and comparing box checksum...
==> box: Successfully added box 'laravel/homestead' (v12.2.0) for 'virtualbox'!

SSH用の鍵の作成

仮想サーバにログインをする際に使用するSSH用の鍵の作成をします。

今回は、「~/.ssh」へ作成を行う前提で説明を行います。

鍵の作成方法

  1. ユーザーディレクトリに移動します。
cd ~/
  1. 「.ssh」フォルダを作成します。
mkdir ~/.ssh
  1. 秘密鍵の作成を行います。
ssh-keygen -t rsa
  1. 鍵を保存するフォルダを聞かれるので、今回は「/Users/xxxx/.ssh/id_rsa_vagrant」と入力して”Enter”を入力します。(”xxxx”の部分はユーザー名に置き換えてください。)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): /Users/xxxx/.ssh/id_rsa_vagrant
  1. パスフレーズを入力します。
Enter passphrase (empty for no passphrase): 
  1. 同じパスフレーズを再度入力します。
Enter same passphrase again: 
  1. 鍵が作成されているか確認します。
ls ~/.ssh

「id_rsa_vagrant」、「id_rsa_vagrant.pub」が作成されていたら成功です。

Homesteadの設定

 Homestead(ホームステード)は、Laravel が動作する開発環境を簡単に構築できるツールです。

前提

Homesteadはgitよりcloneします。

cloneを作成する場所は「~/php/homestead」として進めます。

Homesteadのclone

  1. 次のコマンドを実行します。
git clone https://github.com/laravel/homestead.git ~/php/homestead
  1. 以下のように出力されてすぐに完了します。
Cloning into '/Users/hamada/php/homestead'...
remote: Enumerating objects: 6095, done.
remote: Counting objects: 100% (689/689), done.
remote: Compressing objects: 100% (357/357), done.
remote: Total 6095 (delta 439), reused 555 (delta 328), pack-reused 5406
Receiving objects: 100% (6095/6095), 1.50 MiB | 182.00 KiB/s, done.
Resolving deltas: 100% (3801/3801), done.

Homesteadの初期化

仮想環境と共有するフォルダを「~/php/service/laravel-sample」として進めます。

  1. フォルダの作成をします。
mkdir ~/php/service
mkdir ~/php/service/laravel-sample
  1. Homesteadのcloneを作成したフォルダに移動します。
cd ~/php/homestead
  1. 「init.sh」を実行します。
zsh init.sh
  1. 「Homestead initialized!」が出力されたら初期化完了です。

Homestead.yamlの編集

「~/php/homestead/Homestead.yaml」の編集を行います。

変更内容は以下になります。

  • authorize
    「~/.ssh/id_rsa.pub」 → 「~/.ssh/id_rsa_vagrant.pub」へ変更
  • keys
    「~/.ssh/id_rsa」 → 「~/.ssh/id_rsa_vagrant」へ変更
  • folders – map
    「~/code」 → 「~/php/code/laravel-sample」へ変更
  • folders – to
    「/home/vagrant/code」 → 「/home/vagrant/code/laravel-sample」へ変更
  • sites – map
    「homestead.test」 → 「laravel-sample.test」へ変更
  • sites – to
    「/home/vagrant/code/public」 → 「/home/vagrant/code/laravel-sample/public」へ変更

変更後のHomestead.yamlは以下のようになります。

---
ip: "192.168.56.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa_vagrant.pub

keys:
    - ~/.ssh/id_rsa_vagrant

folders:
    - map: ~/php/service/laravel-sample
      to: /home/vagrant/code/laravel-sample

sites:
    - map: laravel-sample.test
      to: /home/vagrant/code/laravel-sample/public

databases:
    - homestead

features:
    - mysql: true
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

services:
    - enabled:
          - "mysql"

IPアドレスは環境によって異なってきますので、そのまま使用しないようにしてください。

Hostsの編集

Hostsの最終行へ、以下を設定します。

192.168.56.10 laravel-sample.test

IPアドレスは、「Homestead.yaml」のアドレスを設定してください。

仮想環境の起動

ようやく準備が完了です。

実際に仮想環境を起動します。

  1. Homesteadのフォルダへ移動します。
cd ~/php/homestead
  1. HomesteadのVagrant Boxを起動します
vagrant up 

最初は時間が多少かかります。

仮想環境へログインする

次のコマンドを実行して、作成した仮想環境へログインをします。

vagrant ssh

ログインできたら以下のようになります。

Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-124-generic x86_64)

 _                               _                 _
| |                             | |               | |
| |__   ___  _ __ ___   ___  ___| |_ ___  __ _  __| |
| '_ \ / _ \| '_ ` _ \ / _ \/ __| __/ _ \/ _` |/ _` |
| | | | (_) | | | | | |  __/\__ \ ||  __/ (_| | (_| |
|_| |_|\___/|_| |_| |_|\___||___/\__\___|\__,_|\__,_|

* Homestead v13.2.1 | Thanks for using Homestead
* Settler v12.2.0


vagrant@homestead:~$ 

仮想環境へLaravelをインストールする

  1. codeフォルダへ移動します。
cd code
  1. 以下のコマンドを実行してLaravelをインストールします。
composer create-project --prefer-dist laravel/laravel laravel-sample

今回、Laravelは最新版をインストールしています。

  1. ブラウザより以下のURLへアクセスをして正常に表示されることを確認します。
http://laravel-sample.test

以下のようなLaravelのWelcome画面が表示されたら環境構築は終わりです。

仮想環境のシャットダウンする方法

仮想環境をシャットダウンする場合は以下のコマンドを実行します。

vagrant halt

最後に

長くなりましたが、いかがだったでしょうか?

今回、MacのOSのアップデートで仮想環境が立ち上がらなくなり久々にVagrantを触ったので情報をまとめた感じです。

色々な要因で動かなくなるので、都度、情報を更新していきたいと思います。

次回、「LaravelのBreezeを使ってログイン認証画面を作成する」でBreezeで認証機能の説明を行います。そちらも是非ご覧ください。

タイトルとURLをコピーしました