PHPアプリをローカルで開発する環境

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)。ポート番号が要らない
  • 欠点 — 最初の設定が要る。名前解決でつまずくことがある
Laravel Herd(常駐型Webサーバ)
DBngin(データベースを担当)
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 が向いています。

ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です