PHPアプリをローカルで開発する環境
PHPアプリをローカルで動かすには
- PHP — コードを実行する
- Webサーバ — ブラウザからの要求を受け取り、PHPに渡す
- データベース — データを保存する
方式A:php artisan serve(localhost:8000)
Laravelに付属する開発用の簡易サーバ
ブラウザ → localhost:8000 → PHPの内蔵サーバ → アプリ
コマンドを打っている間だけ動き、ウィンドウを閉じると止まる
- 利点 — 設定不要。すぐ起動できる
- 欠点 — 1度に1リクエストしか処理できない(同時アクセスに弱い)、本番と構成が違う。ポート番号がURLに出る
8000 はポート番号で、同じPC内で複数のサーバを区別する番号です。アプリを2つ動かすなら 8000 と 8001 のように分けます。
方式B:Herd(.test ドメイン)
常駐型のWebサーバで、バックグラウンドで動く
ブラウザ → XXXX.test → hosts → 127.0.0.1 → Herd(nginx) → PHP → アプリ
- 名前解決 — qmac.test を自分のPC(127.0.0.1)に向ける
- Windowsの hosts ファイルに 127.0.0.1 qmac.test と書かれることで実現します。herd link を実行したときに Herd が自動で書き込みます。
- 振り分け — どのフォルダを見せるか決める
- herd park でフォルダを登録すると、その配下の各フォルダがフォルダ名.test で自動的に開けるようになります。C:\Users\syste\Herd を park してあるので、その中の XXXX が XXXX.test になりました。
- 利点 — 常時起動。複数サイトを同時に動かせる。本番に近い構成(nginx+PHP-FPM)。ポート番号が要らない
- 欠点 — 最初の設定が要る。名前解決でつまずくことがある
DBngin の役割
これはデータベースだけを担当します。Webサーバとは無関係です
アプリ → 127.0.0.1:3306 → MariaDB
複数のバージョン(MySQL 5.7 / 8.0 / MariaDB 10.11 …)を並べて入れ、必要なものだけ起動できるのが特徴です。本番と同じバージョンを選べるので、XXXXX_app では 10.11 系を選びました。
停止していると、アプリは起動してもデータベース接続エラーになります
Herd と DBngin の両方が起動していないと動きません。片方だけだと、サイトは開くがデータが出ない、あるいはそもそも開かない、という状態になります。
php artisan serve は「ちょっと動かす」用、Herd は「開発環境として据える」用、という使い分けです。今回のように複数プロジェクトを並行させるなら Herd が向いています。
















































