はじめに
今までDockerを何気なく使用していたが、Dockerイメージについて一度簡単に振り返ろうと思い、振り返り勉強しました。
その中で何気なく使用していたPHP-FPMについて気になったので記します。
Dockerイメージとは?
DockerイメージはDockerコンテナを動かすためのテンプレートファイルです。OS、アプリケーションだけでなく、アプリケーション実行に使われるコマンド、メタデータまで含まれています。
Dockerコンテナはテンプレートファイルに基に環境を作るので、Dockerイメージが必須です。
PHP-FPMとは?
PHPにおけるFastCGI実装のことを指します。基本的にはWEBサーバー(NginxやApache)と連携して、PHPスクリプトを実行することが多いです。
FastCGIとは?
一度起動したプログラムをしばらく待機させることで、プログラム起動・終了の手間がなくなり、プログラムの高速化やサーバーの負荷を減らすことが出来る仕組みのことを指します。
参考:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
php:latest/ php:fpmの違い
php:latestは、PHPの公式Dockerイメージの中で、最新の安定版リリースが使われるバージョンを指します。CLI版PHPのため、バッチ処理やスクリプトの実行に使われます。
一方、php:fpmは、先ほど記載したように、WEBサーバー(NginxやApache)と連携してPHPスクリプトを実行に使われます。
特徴
PHP(CLI版)
PHP-FPM
実行方法
コマンドラインで直接実行される
FastCGI経由でWebサーバーと連携して実行
主な用途
スクリプト実行、タスクスケジューリング、バッチ処理
Webアプリケーション(NginxやApacheとの連携)
使用する場面
開発環境やCLIでのスクリプト実行
WebサーバーとPHPアプリの連携
まとめ
結論として、PHPのCLI版は、バッチ処理やスクリプトの実行のみで、NginxやApacheなどのWebサーバーとの直接の連携は不要な場合に選択するイメージ。
PHP-FPMは、NginxやApacheなどのWebサーバーと連携を行い、リクエストの並行処理が必要な場合に選択するイメージだと分かりました。
NginxやApacheについて詳しく知りたい方はこちらの記事を参照するのをお勧めします。
これだけは知っておきたいApacheとNginx
参考資料:
カゴヤのサーバー研究室
FastCGI Process Manager (FPM)
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
これだけは知っておきたいApacheとNginx
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/