Laravel Herdとは — Homebrew不要の高速なPHP開発環境

Laravel HerdとValetを比較するイメージ

これからmacOSでLaravel環境を組むなら、まずHerdでいい。既存のValet資産を活かしたい、あるいは手で細かく制御したい場合だけValetを残す、という切り分けで困ることはまずありません。HerdはPHP・nginx・dnsmasq・Node.jsを同梱したmacOSネイティブのPHP開発環境で、Homebrewを一切必要としません。

Valetは*.testドメインでローカルサイトを配信する軽量ツールですが、PHPやdnsmasqの導入をHomebrewに頼ります。Herdはプリコンパイル済みバイナリを同梱するため、この依存が消えるわけです。導入手順はLaravel Herdの導入手順と基本設定で個別に扱っています。

HerdとValetの違いを一覧で比較する

項目 Laravel Herd Laravel Valet
導入方式 DMGをApplicationsへドラッグ composer global require laravel/valetvalet install
Homebrew 不要 必須(PHP・dnsmasqの導入元)
同梱物 PHP・nginx・dnsmasq・Node.js 本体のみ(依存はHomebrew経由)
GUI管理 あり(Site Manager) なし(CLI中心)
サービス管理 Herd Proでデータベース・キャッシュ等 なし
対応OS macOS 12.0以上 macOS+Homebrew前提

どちらを選ぶべきか — 判断基準

迷ったらHerd。Node.jsまで含めて即動き、Site ManagerでサイトをGUI登録・確認できるので、Laravelに不慣れなメンバーがいる現場ほど効きます。Herd ProならMySQLやRedisもアプリ内から起動できます。

一方で、CIや本番サーバーと同じHomebrew管理のPHPに揃えたい、既存のValetドライバを作り込んでいる、といったケースならValet継続にも十分な理由があります。

ValetからHerdへ乗り換える手順と本番運用前の注意点

移行は拍子抜けするほど簡単です。Herdを初回起動すると既存のValetインストールを自動検出し、サイト・証明書・設定をそのまま引き継ぎます。Valetが起動中なら停止を促されるので、指示に従って止めてください。

ポイントは、HerdがValetの構成を書き換えないこと。合わなければHerdを終了してvalet startを叩けば元に戻せます。

dnsmasqリゾルバ共有が招くアンインストール時の落とし穴

HerdとValetは同じdnsmasqリゾルバを共有します。乗り換え後に一番はまるのがここです。Valetのアンインストール処理は/Applications/Herd.appの有無を見て、Herdがあれば.test TLD用のリゾルバファイルを削除しません。

だからHerd導入後にvalet uninstallしても.testの名前解決は残ります。逆にHerdを先に消してからValetを片付けると、リゾルバごと撤去されて.testが引けなくなる。撤去は必ずValet→Herdの順です。

乗り換え後に .test ドメインとPHPを検証する方法

移行後は「動くはず」で進めず、実際に確認します。まずバイナリが通っているか。

php --version
node --version

次にブラウザで既存サイトの.testを開き、想定どおり表示されるか見ます。開けないならdnsmasqの名前解決が怪しいので、ping your-project.test127.0.0.1が返るか確認してください。そしてCLIのPHPとサイトのPHPがずれていないか。ここを突き合わせておくだけで、本番前の取り違え事故はかなり防げます。

カスタマイズに関するお問い合わせはこちら

    本記事のコード・挙動に関する記述は、laravel/valet v4.12.0 の実際のソースコードと照合して確認しています。