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

これから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/valet+valet 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.testで127.0.0.1が返るか確認してください。そしてCLIのPHPとサイトのPHPがずれていないか。ここを突き合わせておくだけで、本番前の取り違え事故はかなり防げます。
カスタマイズに関するお問い合わせはこちら
本記事のコード・挙動に関する記述は、laravel/valet v4.12.0 の実際のソースコードと照合して確認しています。