php-fpmとは?初心者にもわかる基礎ガイド:高速なPHP実行の秘密共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
php-fpmとは?初心者にもわかる基礎ガイド:高速なPHP実行の秘密共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


php-fpmとは何かをざっくり解説

php-fpm とは PHP を実行するための仕組みであり、ウェブサーバーと PHP の間で動作するプロセスマネージャ のことです。これにより 高速化安定性 が手に入り、多くの同時リクエストを処理できます。

php-fpmの役割

通常のウェブサイトでは PHP が動作するたびに新しいプロセスを起動する方式もありましたが php-fpm はあらかじめ複数の PHP プロセスを用意しておき、リクエストが来るとすぐに対応します。これが レスポンスの短縮 につながります。

従来との違い

従来の CGI や mod_php などと比べ、php-fpm は同時に処理できる数が多く、サーバーの負荷を安定させやすいのが特徴です。特に高トラフィックになるウェブサイトではこの違いが大きな差になります。

動作の仕組み

仕組みを簡単に言うと、 master プロセス がいくつかの プール を管理し、リクエストが来ると割り当てられた ワーカープロセス が PHP コードを実行します。実行が終わると結果をウェブサーバーへ返します。これを繰り返すことで高い同時接続が可能になります。

導入の基本

導入の基本的な流れは環境によって異なりますが、代表的な手順は以下のとおりです。PHP-FPM のパッケージをインストールウェブサーバーと連携する設定を行うpool の設定を調整するサービスを再起動して動作を確認する、の順番です。

動作の利点

この仕組みの大きな利点は 高速化安定性 です。特に高いアクセス数のサイトでは、適切な設定をすることで 応答時間の短縮スケーラビリティの向上 が期待できます。

用語の表

用語説明
FPMFastCGI Process Manager の略
プール複数の PHP プロセスを同時に管理する枠組み
pmプロセスマネージャの設定方法

初心者がつまずくポイント

設定ファイルを手で編集する場合、パスや権限の扱い、ウェブサーバーとの連携設定が難しく感じることがあります。特に pool の max_childrenstart_servers などの値はサーバーの性能と直結します。焦らず少しずつ実環境で試してみるのがコツです。


php-fpmの関連サジェスト解説

php-fpm とは apache
php-fpm とは apache という組み合わせを、初心者にも分かる言葉で解説します。まず、php-fpm は PHP FastCGI Process Manager の略で、PHP の実行を専用のプロセス群に任せるしくみです。Apache はウェブサイトのリクエストを受け取り、静的ファイルを返したり PHP の処理を走らせたりしますが、PHP を動かすには「PHP の動作環境」が必要です。mod_php のように Apache のモジュールとして PHP を組み込む方法もありましたが、同時に多くのアクセスがあるとサーバー全体の動きが鈍くなりがちです。そこで php-fpm を使い、Apache は PHP のリクエストを FastCGI に転送する役割にします。これにより、PHP の処理とウェブ配信を別々に最適化でき、処理の分離によって速度と安定性が向上します。実務的には、接続方法が二つの主な選択肢になります。1つ目は Apache 側で proxy_fcgi を使い、php-fpm が動作するソケットやポートへリクエストを渡す方法。2つ目は fcgi ルートを使う方法や、SetHandler で PHP ファイルを FastCGI に渡す設定です。いずれの場合も、 PHP-FPM のプール設定(例: www というプール名、最大プロセス数、メモリ制限)と、ソケットの場所(例: /var/run/php/php7.x-fpm.sock)またはポート番号(例: 127.0.0.1:9000)を正しく指定することが大切です。設定を適用する大まかな流れは次のとおりです。まず PHP-FPM をインストールして起動します。次にプールの設定ファイルを確認・微調整します。Apache 側のサイト設定では、PHP ファイルを FastCGI に渡す設定を行います。ソケットを使う場合は Unix ドメットを、IPv4 接続を使う場合は fcgi://127.0.0.1:9000 の形で指定します。設定を反映させるには php-fpm と Apache の再起動が必要です。
php-fpm.service とは
php-fpm.service とは、Linux の systemd による「ユニット」ファイルを管理するサービスのことです。中身は PHP-FPM(FastCGI Process Manager)という、PHP をウェブサーバーと連携して高速に実行する仕組みを動かすプログラムです。ウェブサーバーと PHP の間に立ってリクエストを分配し、PHP の実行プロセスを作って処理が終わると結果を返します。多くのサイトで Nginx や Apache などと一緒に使われ、サーバーの負荷や応答速度を安定させます。
php-fpm.conf とは
php-fpm.conf とは、PHP-FPM(PHP FastCGI Process Manager)の設定ファイルのことです。PHP-FPM は PHP を高速に動かすためのサーバー機構で、従来の CGI や mod_php よりも効率的にリクエストを処理できます。php-fpm.conf はその PHP-FPM のグローバル設定を記述するファイルで、複数の pool(処理グループ)を管理するための土台となる役割を持ちます。具体的には master プロセスの挙動を決める設定や、各 pool の設定ファイルをどこから読み込むかを指示する include ディレクティブ、エラーログの出力先、PID ファイルの場所などを定義します。php-fpm.conf の中には global な設定と、実際にリクエストを処理する pools を定義するファイルへの取り回しを行う行があり、通常は /etc/php-fpm.conf や /etc/php/7.x/fpm/php-fpm.conf のような場所に配置され、読み込まれる設定ファイルは include ディレクティブ で指定されるファイル群です。実務ではこの main 設定と、pool の設定ファイルを分けて管理します。pool は各アプリケーションごとに作成され、 listen(クライアントが接続する場所)、 user/ group(実行ユーザー)、PHP のバージョンやメモリの上限、リクエストのタイムアウトなどを個別に設定します。php-fpm.conf の変更を反映させる際は、まず設定ファイルの文法チェックを行い、エラーがないことを確かめてからサービスを再起動またはリロードします。初心者のうちは先輩の手順を真似するか、バックアップを取りながら少しずつ変更を加えるのが安全です。安全に運用するコツとしては、不要な global 設定をいじらず、pool の設定を適切に見直すこと、ログを有効にして問題発生時に原因を特定できるようにすることです。
rh-php72-php-fpm とは
rh-php72-php-fpm とは、Red Hat 系の Linux で使われるソフトウェアコレクション(Software Collections: SCL)の一環として提供される PHP 7.2 と PHP-FPM の組み合わせパッケージです。SCL は、システムのデフォルト PHP を変えずに、別のバージョンの PHP を使える仕組みです。 PHP-FPM は FastCGI Process Manager の略で、ウェブサーバーと PHP の間に効率的な連携を作る役割をします。従来の mod_php などと比べて、同時に処理できるリクエスト数が多く、高負荷のサイトで安定した動作を期待できます。 なぜ rh-php72-php-fpm を使うのか。複数の PHP バージョンを共存させたい/特定のアプリが PHP 7.2 を必要とする/セキュリティやパフォーマンスの改善のためなどの理由があります。サイトごとに適切な PHP バージョンを選択でき、運用の柔軟性が向上します。 使い方のイメージとしては、まず SCL リポジトリを有効化してから rh-php72-php-fpm を導入し、サービスを起動します。ウェブサーバーの設定を PHP-FPM に切り替え、各ドメインやディレクトリごとに適切なバージョンを指定します。具体的な手順はディストリビューションやサーバーの設定によって異なるため、公式ドキュメントを参照してください。 注意点として、PHP 7.2 は公式サポートが終了しており、セキュリティリスクが高くなる可能性があります。新しいバージョンへ移行できる場合は移行を検討し、可能ならセキュリティパッチが提供される環境で運用しましょう。

php-fpmの同意語

PHP-FPM
PHP FastCGI Process Manager の略称。PHPをFastCGIとして実行する際のリクエスト処理を効率的に管理するデーモン/サービスです。
PHP FastCGI Process Manager
正式名称。PHPをFastCGIとして動作させ、プロセスの生成・再起動・監視を行うマネージャ機能のこと。
PHP用 FastCGI プロセスマネージャ
PHP専用の FastCGI プロセスを監視・管理する役割を指します。
PHP-FPM(PHP FastCGI Process Manager)
略称と正式名称を併記した表現。従来の呼び名と同義です。
PHP-FPMデーモン
バックグラウンドで動作するデーモンとしての PHP-FPM のこと。
PHP-FPMサービス
サーバ上で常駐して提供されるサービスとしての PHP-FPM のこと。
FPM(FastCGI Process Manager)
FastCGI プロセスを管理する機構の一般名。文脈により PHP-FPM を指すこともあります。
PHPのFastCGIプロセスマネージャ
PHPをFastCGIで実行するプロセスを管理する機能の別名。
PHP-FPMサーバ
PHP-FPM が提供するサーバ側の処理機能。ウェブサーバと連携してリクエストを処理します。

php-fpmの対義語・反対語

PHP-CGI
phpをCGI(Common Gateway Interface)として実行する従来の方式。リクエストごとに新しいプロセスを起動するため、PHP-FPMのような常駐プロセス管理とは異なります。
mod_php
Apacheのモジュールとして直接PHPを実行する方式。FPMのような外部プロセス管理を使わず、ウェブサーバに組み込んで動かします。
静的HTML配信
動的なPHP処理を一切行わず、静的なHTMLファイルのみを配信する構成。サーバー側のPHPは使われません。
PHP-CLI
コマンドラインでPHPを実行する用途。ウェブリクエストの処理には用いず、サーバー上のPHP-FPMの対象ではありません。
他言語サーバーサイド実行
PHP以外の言語(例: Node.js、Python など)でサーバーサイド処理を行う構成。PHP-FPMとは別の実行エンジンを使います。
FastCGI単体実行
FastCGIの接続を使ってPHPを動かすが、PHP-FPMのようなプロセスマネージャを使わず、別の実装(独自のFastCGIサーバ等)を使う構成。

php-fpmの共起語

PHP
サーバーサイドのプログラミング言語で、php-fpmと組み合わせてウェブアプリを実行する基盤となる言語。
FastCGI
ウェブサーバと動的処理をやり取りする高速な CGI の仕組み
FPM
FastCGI Process Manager の略。PHP-FPM のコアとなるプロセス管理機能。
Process Manager
プロセスを動的に生成・再利用してリクエストを処理する仕組み。
Pool
同一設定を共有する子プロセスの集まり。php-fpm では pool ごとに設定を持つ。
www.conf
デフォルトのプール設定ファイル。実運用ではこのファイルを編集して動作を調整する。
pool.d
プール設定ファイルを格納するディレクトリ
php-fpm.conf
PHP-FPM のメイン設定ファイル。全体の動作を制御する。
pm
プロセスマネージャの動作モードを指す設定。dynamic/static/ondemand のいずれか。
dynamic
need に応じて子プロセスを増減させる動的モード
static
常に一定数の子プロセスを保持するモード
ondemand
需要があるときだけ子プロセスを起動するモード。
pm.max_children
同時に処理できる子プロセスの最大数。
start_servers
起動時に立ち上げる子プロセスの数。
min_spare_servers
アイドル時の最低子プロセス数。
max_spare_servers
アイドル時の最高子プロセス数。
max_requests
各子プロセスが処理するリクエストの上限数。
unix-socket
UNIX ソケットを使って PHP-FPM と Web サーバを接続する設定。
php-fpm.sock
PHP-FPM が使用する UNIX ソケットファイル名。
listen
サーバが待機する接続先。UNIX ソケットか TCP ポートを指定。
listen.address
TCP で待機する場合のホストアドレス。
listen.port
TCP で待機する場合のポート番号
127.0.0.1:9000
Nginx などのWebサーバと接続するデフォルトのリスン先。
systemd
systemd によるサービス管理。起動・停止・再起動等を制御。
systemctl
systemd のサービス制御コマンド。
php-fpm.service
systemd で管理される PHP-FPM のサービス名。
logs
PHP-FPM が出すログの総称。エラーログ・遅延ログなどを含む。
error.log
エラーログファイル。エラーや警告の記録。
slow.log
遅いリクエストを記録するスローログ。
php-fpm.log
PHP-FPM 専用のログファイル
status
現在の動作状況を確認するステータス機能(/status など)。
status_path
ステータス情報を公開するURL/パス。
nginx
Nginx。主にフロントエンドのウェブサーバとして PHP-FPM と連携。
Apache
Apache HTTP Server。mod_proxy_fcgi などで PHP-FPM と連携。
mod_proxy_fcgi
Apache で FastCGI プロトコルを使って PHP-FPM と連携するモジュール
proxy_fcgi
Nginx 側の設定で PHP-FPM へリクエストを渡す指示。
docker
Docker 環境での実行。コンテナ化して運用するケースが多い。
Dockerfile
Docker イメージを作る際の設定ファイル。
docker-compose
複数のコンテナを同時に起動・管理する設定。
image
Docker イメージ。公式の php-fpm イメージなどを使用する。
OPcache
オペコードキャッシュ。PHP の実行速度を向上させる仕組み。
memory_limit
PHP のメモリ上限設定。各プロセスにも影響する。
user
実行ユーザー。例: www-data、nginx、apache など。
group
実行グループ
permissions
ファイル・ディレクトリの権限設定。適切に設定しないと動作に支障。

php-fpmの関連用語

PHP-FPM
PHPをFastCGIとして実行するデーモンで、リクエストを受け取ってワーカープロセスを管理します。
FastCGI
通常のCGIより高速に動作するインタフェース。常駐プロセスがリクエストを処理する仕組みで、PHP-FPMはこれを使ってPHPを実行します。
PHP
サーバーサイドのスクリプト言語。ウェブサイトの動的処理を担当します。
FPM
FastCGI Process Managerの略。PHP-FPMと同義です。
プール
同じ設定を共有する複数のワーカープロセスの集合。プールごとに独立した設定を持てます。
www.conf
デフォルトのプール設定ファイル。プールごとの動作を定義します。
pm
Process Managerの略。ワーカープロセスの総合的な動作設定を指します。
pm.max_children
同時に処理できる子プロセスの最大数。サーバーのリソースと直結します。
pm.start_servers
起動時に作成される初期のワーカープロセス数。
pm.min_spare_servers
アイドル状態で維持する最小の予備プロセス数。
pm.max_spare_servers
アイドル状態で維持する最大の予備プロセス数。
pm.max_requests
各ワーカープロセスが処理するリクエストの上限回数。超えると再起動することがあります。
listen
PHP-FPMがリクエストを受け付けるソケット。TCPポートやUnixソケットを指定します。
listen.owner
Unixソケットを使う場合のファイル所有者
listen.group
Unixソケットを使う場合のファイルグループ。
listen.mode
Unixソケットのファイルパーミッション
listen.backlog
待機接続のキューの最大長。多数の接続を受けたときの挙動に影響します。
Unixソケット
ファイルシステム上のソケット。/var/run/php-fpm.sock など。
TCPソケット
IPアドレスとポートで待ち受けるソケット。例 127.0.0.1:9000。
pm.status_path
稼働状況を返すステータスURLのパス。監視に使われます。
request_terminate_timeout
各リクエストの最大実行時間の制限。超えると処理を中断します。
request_slowlog_timeout
長時間かかるリクエストを検知する閾値。
slowlog
遅いリクエストを記録するファイル。
catch_workers_output
ワーカープロセスの標準出力をログへ出力するかの設定。
chdir
リクエスト処理開始時の作業ディレクトリ。
log_level
エラーログの出力レベル。通常は error または warning など。
php.ini
PHPの全体設定ファイル。各種PHP設定がここで管理されます。
php-fpm.conf
PHP-FPM自体の設定ファイル。グローバルな挙動を決めます。
NGINX連携
ウェブサーバーのNGINXとPHP-FPMを連携させる設定の総称。
fastcgi_pass
NGINX から PHP-FPM へリクエストを渡す指示。
opcache
PHPのコードを事前にコンパイルして実行を速くするキャッシュ機構。PHP-FPM とは別に有効化します。

php-fpmのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14304viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2381viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1057viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1016viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
910viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
885viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
816viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
809viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
786viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
769viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
703viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
659viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
580viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
554viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
543viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
541viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
499viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
475viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
461viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
442viws

新着記事

インターネット・コンピュータの関連記事