Laravel Herdのインストールから起動までの手順

Laravel Herdは、PHPやnginxを個別に導入せずにローカル環境を数分で立ち上げられるネイティブアプリだ。ダウンロードして起動し、プロジェクトを置いたフォルダを登録すれば、そのまま「.test」ドメインでアクセスできる。公式サイトからmacOS版とWindows版が配布されている。基本の流れはLaravel入門:環境構築からルーティングまでの基礎も参照してほしい。

Laravel Herdについてのイメージを入れて

macOS・Windowsそれぞれのインストール方法

macOSでは公式サイトのインストーラーを開き、アプリケーションフォルダへドラッグするだけ。初回起動時にPHPやnginxのバンドルが展開される。

Windowsではインストーラーを実行する(セットアップ時に管理者権限が必要)。要件はmacOS 12.0以上・Windows 10以上だ。ここで見落としがちなのが、既存のXAMPPやApacheが80番・443番ポートを掴んだまま残っているケースだ。この状態でHerdを起動すると待ち受けが競合し、サイトが真っ白になる。先に既存サービスを停止してからインストールする順序を守りたい。

サイトの追加とバーチャルホストの自動設定

Herdはディレクトリを「park」すると、その配下の各フォルダを自動でサイト化する。ターミナルでプロジェクトの親ディレクトリに移動し、次を実行する。

cd ~/Projects
herd park

これでフォルダ名がそのまま「フォルダ名.test」として解決される。バーチャルホストやhostsの編集は不要で、名前解決はHerdが肩代わりする(macOS版はdnsmasqを同梱している)。反映されないときは、ブラウザのキャッシュを疑う前にHerdアプリのSites Manager(サイト一覧)に対象サイトが並んでいるかを確認するのが確実だ。

PHPバージョン切り替えとデータベース接続でつまずくポイントと対処法

複数の案件を並行する現場では、PHPのバージョン差とDB接続の2点でほぼ確実につまずく。公式ドキュメントだけでは判断しづらい落とし穴を挙げておく。

プロジェクトごとにPHPバージョンを固定する設定

グローバルのPHPを切り替えると全サイトに影響するため、案件ごとに固定するのが安全だ。プロジェクトのディレクトリ内で以下を実行すれば、そのサイトだけバージョンを分離できる。

cd ~/Projects/my-app
herd isolate 8.2

Laravel 10以前の保守案件と11系の新規開発を同じマシンで触るとき、この分離が効いてくる。逆に全案件が同一バージョンで揃うなら、グローバル設定のほうが管理は楽だ。設定後の確認はphp -vではなく、サイト上のphpinfo()で見ること。CLIとWebで参照するバージョンが食い違う場合があるからだ。

Herd起動後にDB接続できない場合の原因と確認手順

SQLiteなら同梱のPHP拡張でそのまま動く(新規Laravelの既定もSQLite)が、MySQLやPostgreSQLのようなサーバー型DBは無料版に同梱されない。この前提を忘れると、マイグレーション時にSQLSTATE[HY000] [2002] Connection refusedで止まる。有料版のサービス機能を使うのか、別途MySQLを用意しているのか、まずここを切り分けたい。

接続情報が正しくても繋がらない場合、疑う順序は次のとおり。

  • DBサービスが実際に起動しているか
  • ポート(既定では3306)が他のMySQLと競合していないか

ポートが空いているかはnc -zv 127.0.0.1 3306で確認できる。.envDB_HOSTlocalhostにするとソケット接続を試みて失敗することがあるため、迷ったら127.0.0.1を指定してTCP接続に固定すると安定する。

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

    本記事のコード・挙動に関する記述は、Laravel 13.23.0 の実際のソースコードと照合して確認しています。