PHPはサーバーサイドのスクリプト言語として広く使われていますが、「実際にPHPがどうやって動くのか?」をきちんと理解している人は意外と少ないかもしれません。
この記事では、Webサーバー(NginxやApache)からPHPファイルが実行されてブラウザにレスポンスが返るまでの流れを、図解付きでわかりやすく解説します。
✅ 全体の流れ(HTTPリクエストからレスポンスまで)
まずは、ブラウザでURLを叩いてから画面に何かが表示されるまでの流れを、ざっくり図解します。
[ブラウザ]
↓ HTTP/HTTPSリクエスト(例: URLアクセス)
[Webサーバー(NginxやApache)]
↓ PHPファイルであれば処理を外部に渡す(FastCGI)
[PHP実行エンジン(php-fpmなど)]
↓ PHPコードを解釈・実行し、HTMLなどのレスポンスを生成
[Webサーバー]
↓
[ブラウザにHTMLを返却 → 表示]
✅ 詳細構造の図解(コンポーネントごとの役割)
PHPが実際にどこでどのように動いているのかを、構造図で整理してみましょう。
+---------------------+ リクエスト +--------------------+
| ブラウザ | -----------------------> | Nginx / Apache |
| (ユーザーのPCやSP) | | (80番 or 443番ポート)|
+---------------------+ +--------------------+
|
| FastCGI(プロトコル)
v
+------------------------+
| php-fpm |
| (PHP実行エンジン) |
+------------------------+
|
v
+--------------------------+
| LaravelやPHPファイル本体 |
| (Controller, Model等)|
+--------------------------+
✅ 通信プロトコルのイメージ(FastCGI)
[Nginx or Apache]
↓ FastCGI(通信プロトコル)
[php-fpm]
↓
[PHPコード実行(Laravelなど)]
✅ 処理のステップを1つずつ解説
ステップ | 内容 |
---|---|
① | ユーザーがブラウザでURLを開く(HTTPまたはHTTPSリクエスト) |
② | Webサーバー(NginxやApache)がそのリクエストを受け取る |
③ |
.php ファイルへのアクセスなら、FastCGIでphp-fpmに処理を依頼 |
④ | php-fpmがPHPコードを読み込み、1行ずつインタプリタとして解釈 |
⑤ | データベースやファイルにアクセスしてHTMLを生成 |
⑥ | 生成されたHTMLがWebサーバーに返される |
⑦ | WebサーバーがそのHTMLをブラウザに返却 |
⑧ | ブラウザに画面が表示される |
✅ 各コンポーネントの役割まとめ
コンポーネント | 役割 |
---|---|
ブラウザ | ユーザーがアクセスするフロントエンド |
Webサーバー(Nginx / Apache) | リクエスト受付&PHP処理の振り分け |
FastCGI | Webサーバーとphp-fpmをつなぐプロトコル |
php-fpm | PHPコードを実際に実行するエンジン |
PHPコード(Laravelなど) | アプリのロジック。ルーティングやDB処理などを行う |
✅ 補足:php-fpmとは?
- 正式名:PHP FastCGI Process Manager
- FastCGIプロトコルを介してPHPの実行を担当
- 複数のPHPプロセスをプールし、高速にレスポンスを返せる
- LaravelなどモダンなPHPアプリは基本的にphp-fpmを介して実行される
✅ まとめ
- PHPは「インタプリタ型」言語で、php-fpmという実行エンジンで処理される
- Webサーバーはリクエストを受付け、php-fpmにPHPファイルの処理を依頼する
- 最終的に生成されたHTMLがブラウザに返されて画面に表示される
🔚 最後に
このように、PHPが動く仕組みを理解することで、Webアプリケーションのトラブルシューティングや設計の理解が格段に深まります。
今後は以下のような関連テーマも学ぶとさらにレベルアップできます。
- PHP-FPMの設定(子プロセスの管理など)
- Laravelのリクエストライフサイクル
- NginxやApacheの構成と最適化
ご参考になれば幸いです!