WEB/システム/IT技術ブログ

Laravel HomesteadでWindowsに快適な開発環境を作れるか

Laravel HomesteadでWindowsに開発環境を作ります。

これまでxamppをメインにWindowsで開発をしてきました。
モダンな環境でということでwsl & Dockerに乗り換えたのですが、環境をアップグレードする度にCPUの負荷が上がったり、メモリを大量に消費したり。。
チューニングの繰り返しで作業にならないので、安定した環境を求めてLaravel Homesteadを試してみます。

ちなみにHomesteadに必要なVirtualBoxとVagrantはインストール済みを前提とします。

  • Windows 11 Home 64bit
  • VirtualBox 7.0.6
  • Vagrant 2.3.4

Homesteadをインストール

まず、BoxをVagrantに追加します。Windows PowerShellを起動して以下のコマンドを実行します。

> vagrant box add laravel/homestead
==> 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) libvirt
2) parallels
3) virtualbox

Enter your choice:

プロバイダの選択を求められるので、今回はVirtualBoxの「3」を選択します。
こちらの処理に5分ほどかかりました。

完了したら念のためBoxを確認します。

> vagrant box list
laravel/homestead (virtualbox, 13.0.0)

続いて、任意のディレクトリ、例えば「C:\homestead」を作成し、親ディレクトリからgitクローンを実行します。

> git clone https://github.com/laravel/homestead.git .\homestead\
Cloning into '.\homestead'...
remote: Enumerating objects: 6235, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 6235 (delta 2), reused 7 (delta 1), pack-reused 6223Receiving objects: 100% (6235/6235), 656.01 KiB | 1.27Receiving objects: 100% (6235/6235), 1.51 MiB | 1.57 MiB/s, done.

Resolving deltas: 100% (3921/3921), done.

ディレクトリに移動し、以下のコマンドで最新の安定板であるreleaseブランチをチェックアウトします。

> cd .\homestead\
> git checkout release
Switched to a new branch 'release'
branch 'release' set up to track 'origin/release'.

次に、initバッチを実行して設定ファイル「Homestead.yaml」を作成します。

> .\init.bat
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
Homestead initialized!

(ん?何個コピーした?)

Homesteadのセットアップは以上です。

Homesteadの設定

次に、仮想環境の設定をチューニングします。

Homestead仮想環境とローカルマシンで共有するフォルダを設定します。
設定ファイル「Homestead.yaml」を開き、foldersプロパティで設定します。
例えば仮想環境の「/home/vagrant/project1」と、プロジェクトのソースが展開されているローカルの「C:\project1」を共有する場合、以下のように設定します。

folders:
    - map: C:\project1
      to: /home/vagrant/project1

次に、Webサーバ「Nginx」の公開ディレクトリを設定します。上記プロジェクトの公開フォルダが「public_html」の場合、以下のように設定します。

sites:
    - map: project1.localhost
      to: /home/vagrant/project1/public_html

基本的な設定は以上となります。

動作確認

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

ファイル「Homestead.yaml」のあるディレクトリに移動して、以下のコマンドを実行します。

> vagrant up

ちなみに「Homestead.yaml」の変更を環境に反映させる場合には、オプション「provision」を追加する必要があります。

> vagrant up --provision

環境が起動中の場合は、以下のコマンドでもよいです。

> vagrant reload --provision

「Homestead.yaml」では、デフォルトで仮想環境のIPが「192.168.56.56」になっています。Windowsのブラウザでアクセスするためには、先ほど「Nginx」で設定したドメインをhostsで定義する必要があります。
ファイル「C:\Windows\System32\drivers\etc\hosts」を開き、以下の1行を追加します。

192.168.56.56 project1.localhost

ブラウザで「http://project1.localhost」にアクセスすると、無事ソースが表示されるはずです。

192.168.56.56 project1.localhost

以下のコマンドで環境を停止します。

> vagrant halt

何か設定がおかしい、動作がおかしいと感じたら、一度破棄するのも仮想環境の手軽さです。

> vagrant destroy

プロジェクト毎にインストール

上記の方法は、プロジェクトに関係なくグローバルな仮想環境を構築するイメージですが、プロジェクト毎に仮想環境を用意する事もできます。
プロジェクト毎に設定ファイルを生成し、リモートリポジトリなどで管理することで、複数人で仮想環境を共有することができます。
Laravelプロジェクトのルートディレクトリに移動し、composerを使用してHomesteadをインストールします。

> composer require laravel/homestead --dev

Homesteadのmakeコマンドで、設定ファイル「Homestead.yaml」「Vagrantfile」等を生成します。

> .\vendor\bin\homestead make

設定ファイルの調整などは前述と一緒です。
以下のコマンドで仮想環境を起動することができます。

> vagrant up

初見としては、wslに比べてリソースに負荷はかかっていないようです。
しばらくこれで作業してみようと思います。

その他設定

HomesteadではデフォルトのWebサーバがNginxですが、以下の設定でApacheを使うことができます。

sites:
    - map: project1.localhost
      to: /home/vagrant/project1/public_html
      type: "apache"

また、デフォルトのPHPのバージョンは8.2ですが、以下の設定で指定することができます。

sites:
    - map: project1.localhost
      to: /home/vagrant/project1/public_html
      php: "7.4"

phpMyAdminを導入する

xampp使用の際に慣れ親しんだphpMyAdminを導入します。
以下の公式サイトから、最新のパッケージ「phpMyAdmin-5.2.1-all-languages.zip」をダウンロードします。
phpMyAdmin – Downloads
ダウンロードしたファイルを展開し、先ほどHomestead仮想環境で共有したフォルダに展開します。

C:\project1\phpMyAdmin

サイト設定の部分に、phpMyAdminローカルサイト「phpmyadmin.localhost」の設定を追加します。

sites:
    - map: project1.localhost
      to: /home/vagrant/project1/public_html
    - map: phpmyadmin.localhost
      to: /home/vagrant/project1/phpMyAdmin

「phpmyadmin.localhost」についてhosts設定を追加します。

192.168.56.56 project1.localhost
192.168.56.56 phpmyadmin.localhost

Homestead仮想環境に設定を反映させます。

> vagrant reload --provision

設定は以上です。ブラウザで「http://phpmyadmin.localhost」にアクセスできるはずです。
初期のユーザ名とパスワードは「homestead : secret」なので、必要に応じて変更します。

B!

Comment

コメントはありません

コメントする

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives