Laravel環境構築 Homestead-Vagrant(Windows10)

PHP

今回はWindows10でPHP開発でおなじみのLaravel環境を構築します。
VirtualBox、Homestead、Vagrant、Composer
これらを使用して環境を作成していきます。

必要なツールをインストール

前提条件として以下の3つのツールをインストールする必要があります。
Git for winodws
VirtualBox
vagrant

ちなみに今回、このページで環境構築した際の
それぞれのバージョンは以下になります。ご参考まで。
・OS:Windows10 Pro
・Git for winodws (2.30.0.2)
・VirtualBox(5.2.44)
・vagrant(2.2.5)

Homestead環境を作成する

まずはローカル環境にHomesteadの環境を作成していきます。
以下、手順です。

Git Bashを起動します。

Git Bashの起動方法は以下の通り。
windowsスタートメニュー -> Git -> Git Bash

起動したら以下を実行

$ vagrant box add laravel/homestead

「Enter your choice:」が表示されたら、3を入力して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) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice:

次にHomesteadとう名前のディレクトリにgitのhomesteadリポジトリを作成します。
以下を実行

$ git clone https://github.com/laravel/homestead.git Homestead

windows10の場合、
Gitのデフォルトホームディレクトリは「C:\Users\ユーザー\」なので
「C:\Users\ユーザー\Homestead」というディレクトリが作成されます。

作成したディレクトリへ移動します。

$ cd ./Homestead

初期化用のシェルを実行します。(Homesteadの設定ファイルなどが作成される)

$ ./init.sh

成功すると以下の文字列が表示されます。

Homestead initialized!

これでhomesteadのセットアップは完了です。

SSH用のカギを作成する

続いて、Git for WindowsのSSH作成機能を利用して
VMに入るためのSSH用の鍵を作成します。

鍵作成用のディレクトリを作成します。

$ mkdir ~/.ssh && cd $_

鍵作成用のコマンドを実行します。

$ ssh-keygen -b 4096

※4096は鍵長の長さ

デフォルトのKey名で問題ないければ何も入力せずにEnter
未入力の場合、デフォルトの「id_rsa」がKey名となる

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/yoshi/.ssh/id_rsa):

任意のパスワードを入力してEnter

Enter passphrase (empty for no passphrase):

パスワードを再入力

Enter passphrase (empty for no passphrase):

成功すると以下のような文字列が表示されます。

Your identification has been saved in XXXXX
Your public key has been saved in XXXXX.pub
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The key's randomart image is:
+---[RSA 4096]----+
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
+----[SHA256]-----+

以下のフォルダに行き、鍵のファイルが作成されていることを確認してください。
「C:\Users\ユーザー\.ssh\」
・id_rsa
・id_rsa.pub

これでSSHの鍵作成完了です。

Homestead.yamlを編集する

Homesteadを正常に起動させるためには
開発環境にあわせてHomestead.yamlを編集する必要があります。

「C:\Users\ユーザー\Homestead\Homestead.yaml」をテキストエディタ等で開き
①~④の場所を確認・修正してください。

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

authorize: ~/.ssh/id_rsa.pub ←①鍵ファイルの格納場所、ファイル名を指定

keys:
    - ~/.ssh/id_rsa ←②鍵ファイルの格納場所、ファイル名を指定

folders:
    - map: C:\Users\ユーザ\Laravel ←③ローカルの開発ディレクトリを指定
      to: /home/vagrant/code
      type: "nfs" ←④追加

sites:
    - map: homestead.test
      to: /home/vagrant/code/myapp/public ←⑤myappは後々の作業で作成するプロジェクト名

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

vagrantを起動する

いよいよvagrantの起動です。

git bashにてHomesteadのディレクトリへ移動し、以下のコマンドで起動します。

$ vagrant up

うまくいけば以下のように起動が始まります。

Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Checking if box 'laravel/homestead' version '10.1.1' is up to date...
==> homestead: Clearing any previously set network interfaces...
==> homestead: Preparing network interfaces based on configuration...
    homestead: Adapter 1: nat
    homestead: Adapter 2: hostonly
==> homestead: Forwarding ports...
    homestead: 80 (guest) => 8000 (host) (adapter 1)
    homestead: 443 (guest) => 44300 (host) (adapter 1)
    homestead: 3306 (guest) => 33060 (host) (adapter 1)

起動には数分かかります。
のんびり待ちましょう。

余談ですが、vagrant upでの起動時に
いくつかのエラーではまりまして。
解決方法をアップしています。

同じようにエラーとなってしまった場合は参考になるかもしれませんので
リンク張っておきます。

Laravel_homestead vagrant upでバージョンエラー(no available version)
vagrant upコマンド実行時に 以下のようなメッセージが表示された場合の 解決策を記載します。 $ vagrant up Bringing machine 'homestead' up with 'virtualbox' provider... ==> homestead: Box 'laravel/homestead' could not be found. Attemp...
Laravel_homestead vagrant upでエラー(bridged or non-hostonly network.)
vagrant upコマンド実行時に 以下のようなメッセージが表示されて起動できなかった場合の 解決策を記載します。 Bringing machine 'homestead' up with 'virtualbox' provider... ==> homestead: Checking if box 'laravel/homestead' version '10.1.1' is ...

laravelのプロジェクトを作成する

仮想環境が立ち上がったら、
vagrant sshコマンドで仮想環境へログインします。

$ vagrant ssh
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-48-generic x86_64)

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

* Homestead v10.17.0, v11.4.0
* Settler v9.7.2 (Ubuntu 18.04)
* Settler v10.1.1 (Ubuntu 20.04)

0 updates can be installed immediately.
0 of these updates are security updates.


Last login: Sat Jan 16 07:00:28 2021 from 10.0.2.2
vagrant@homestead:~$

無事にログインできました。

続いて、laravelのプロジェクトを作成します。

cdコマンドでcodeディレクトリへ移動後、composer create-projectを実行します。

vagrant@homestead:~$ cd code/
vagrant@homestead:~/code$ composer create-project --prefer-dist laravel/laravel myapp

数十秒で作成完了です。
これでプロジェクトが作成されました。

もし、Could not deleteのエラーが発生してしまったら
こちらのページを参考にしてみてください。

Laravel_composer create-projectでエラー(Could not delete)
Laravel開発環境の構築でどハマりしましたので情報共有。 (VirtualBox + Vagrant + Homestead + Composer) vagrant@homestead:~$ cd code/ vagrant@homestead:~/code$ composer create-project --prefer-dist laravel/laravel myapp ...
Laravel_composer create-projectでエラー(Permission denied)
Laravel開発環境の構築でどハマりしましたので情報共有。 (VirtualBox + Vagrant + Homestead + Composer) vagrant@homestead:~$ cd code/ vagrant@homestead:~/code$ composer create-project --prefer-dist laravel/laravel myapp ...

IPアドレス転送設定を行う

続いてIPアドレスの転送設定を行います。
windowsの場合、hostsファイルを編集することで設定可能です。

hostsファイルは以下にあります。
「C:\Windows\System32\drivers\etc\hosts」

hostsファイルをテキストエディタ等で開き、
以下を追加します。

192.168.10.10  homestead.test

IPアドレス、ホスト名ともに、Homestead.yamlで設定した値を設定してください。

ちなみにhostsファイルの編集は管理者権限が必要になります。
管理者権限での編集方法がわからない場合は、googleで調べればすぐ見つかると思います。

デフォルトページを表示してみる

これですべての準備が完了しました。
ブラウザでデフォルトページを表示させてみましょう。

任意のWEBブラウザのURLに「homestead.test」と入力しEnter

無事表示されました。

以上!

コメント

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