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」なので、必要に応じて変更します。
コメントする