

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
php-fpm.conf・とは?
php-fpm.confは、PHPを高速に実行する仕組みである PHP-FPM のグローバル設定を行うための主要な設定ファイルです。PHP-FPMはウェブサーバーと連携してPHPの処理を担当しますが、その挙動をどう制御するかはこのファイルで決まります。ファイルの場所はOSやディストリビューションによって異なります。例えば、Debian系では /etc/php/*/fpm/php-fpm.conf のような場所に置かれ、RHEL系や CentOS 系では /etc/php-fpm.conf や /etc/php-fpm.d/ 配下に配置されていることが多いです。ディストリビューションごとに少しずつ書き方が異なる点に注意しましょう。
まず覚えておきたいのは、php-fpm.confは「グローバル設定」を担当するファイルであり、個々の「プール設定」は別ファイルに分かれているという点です。プール設定とは、実際にどのウェブアプリをどのような条件で実行するかを決める設定で、代表的なファイル名は www.conf のような名前が付くことが多いです。この分離により、複数のアプリやサイトを1つの PHP-FPM インスタンスで安全かつ効率的に動かすことができます。
php-fpm.confの主な役割と構成
このファイルには、以下のような「グローバルな」設定が含まれることが多いです。
- include:プール設定ファイルの読み込みパスを指定します。例えば /etc/php-fpm.d/*.conf のように、複数のプール設定を読み込むことができます。
- pid:マスタープロセスの PID ファイルの場所を指定します。
- error_log:エラーログの出力先を指定します。
- log_level:ログの詳細度を決めます。一般的には notice、error、debugなどを選択します。
- daemonize:バックグラウンドで動作するかどうかを決めます。systemd 環境では通常 no にします。
- その他、emergency_restart_interval や rlimit_files など、サーバーの信頼性や資源制限に関する設定が含まれる場合があります。
これらの設定は、サーバーの仕様や運用ポリシーによって変わります。実際の環境で編集する際は、まず現在の設定をバックアップし、変更前後の挙動を確認しましょう。
実務の流れと設定の検証
php-fpm.confを編集する一般的な手順は次のとおりです。
- 現在の設定ファイルのバックアップを作成する。
- テキストエディタで php-fpm.conf を開き、必要な変更を加える。
- 設定ファイルの文法を検証する。多くの環境では php-fpm -t や php-fpm -t -y /path/to/php-fpm.conf のコマンドでエラーをチェックします。
- エラーがなければ、サービスを再起動またはリロードします。典型的には systemctl reload php-fpm または systemctl restart php-fpm を実行します。
- 実際の挙動をログで確認します。エラーログに異常がないか、想定どおりにリクエストが処理されているかを確認します。
以下の表は、代表的なグローバルディレクティブとその意味を簡潔に整理したものです。
| 説明 | |
|---|---|
| include | プール設定ファイルの読み込みパス。複数ファイルをまとめて読み込むことが多い。 |
| pid | マスタープロセスの PID ファイルの場所を指定する。 |
| error_log | エラーログの出力先を指定する。 |
| log_level | ログの詳細度を設定する。例: error、notice、debug。 |
| daemonize | バックグラウンド実行の設定。systemd 環境では usually <span>no。 |
| emergency_restart_interval | マスターが過剰なエラー連発時の緊急再起動間隔を制御する。 |
プール設定との関係
グローバル設定だけでなく、実際の処理を担う「プール設定」も重要です。プール設定ファイルには、[プール名] の下に listen(接続先)、user、group、pm(プロセスマネージャの設定)、max_children など、各サイトやアプリごとの条件が書かれます。php-fpm.conf はこれらプール設定ファイルを読み込む役割を持つため、両方を適切に管理することが安定した運用の鍵です。
よくあるトラブルと対処のヒント
設定を変更した後に起きやすいトラブルと対処法をいくつか挙げます。
- エラーがログに連なる: log_level を適切なレベルに設定して原因を特定します。設定ミスやパスの間違いが多いです。
- リクエストが遅い/タイムアウト: プール設定の pm 関連(min, max, start)、および listen の設定を見直します。
- コード変更後に反映されない: systemctl reload php-fpm でリロードしたかを確認します。再起動を選ぶ場合は影響範囲を考慮します。
まとめとおすすめの実践ポイント
php-fpm.confは PHP-FPM の肝となるグローバル設定ファイルです。適切に設定することで、複数のウェブサイトを安定して処理でき、問題が起きたときも迅速に原因を特定できます。新しい環境で運用を始める際は、まずバックアップを取り、推奨設定のデフォルトを理解した上で、必要に応じて少しずつ変更していくとよいでしょう。さらに、プール設定と合わせて監視を行えば、サーバーの性能と信頼性を高められます。
php-fpm.confの同意語
- php-fpm.conf
- PHP-FPM の設定ファイル。PHP-FPM の挙動を決定する設定を格納している標準的なファイル名。
- PHP-FPM の設定ファイル
- php-fpm.conf と同じ意味を日本語で表現した表現。PHP-FPM の設定を格納するファイルを指す。
- php-fpm設定ファイル
- php-fpm.conf の日本語表現の一つ。設定ファイルを指す表現。
- PHP-FPM.conf
- 大文字表記のファイル名の略称表現。実際のファイル名として使われる場合があるが、環境により異なることがある。
- php-fpm.conf ファイル
- php-fpm.conf という設定ファイルを指す言い方。ファイル名を強調する表現。
- PHP-FPM コンフィグファイル
- 英語の Config をカタカナ表現にしたもの。PHP-FPM の設定ファイルを指す別称。
- PHP-FPM 設定ファイル
- PHP-FPM の設定内容を格納するファイルを指す一般表現。
- php-fpm設定
- 設定そのものを指す略称表現。文脈次第でファイルを指すこともある。
- PHP-FPM の設定
- 設定内容を指す広義の表現。ファイルを指す場合もある。
php-fpm.confの対義語・反対語
- 実行ファイル
- PHP-FPMを起動・実行するためのバイナリファイル。設定ファイルである php-fpm.conf の対極にある概念です。
- デフォルト設定
- php-fpm.conf で個別に設定する前の初期値・挙動。設定ファイルを使う場合の対比として使える概念です。
- 無設定ファイル
- 設定を全く持たない状態。デフォルト値のみで動作する前提の状態を指します。
- 動的設定
- 動的に反映される設定。ファイルベースの静的設定とは反対の運用方法です。
- 環境変数による設定
- 設定をファイルに書かず、環境変数でオーバーライドする方法。ファイルベースの設定の代替として挙げられます。
- コード内設定
- 設定をソースコード内に直接ハードコーディングする方法。ファイル外部の設定と対比となる使い方です。
- php.ini
- PHPの別設定ファイル。PHP-FPMの設定ファイルとは別の設定層を指す対比として挙げられます。
- ウェブサーバーの設定ファイル
- nginx.conf や httpd.conf のように、ウェブサーバー側の設定ファイル。PHP-FPMの設定ファイルとは別カテゴリの対比です。
php-fpm.confの共起語
- php-fpm.conf
- PHP-FPM のグローバル設定ファイル。デーモンの動作、ログ出力、ソケットの設定、プロセス管理などの基本設定を行います。
- include
- 追加の設定ファイルを読み込む指示。/etc/php-fpm.d/*.conf などを参照して設定を拡張します。
- daemonize
- バックグラウンドで実行するかどうかを決定します。on ならデーモンとして動作します。
- pid
- メインプロセスの PID ファイルの保存場所を指定します。
- error_log
- エラーログの出力先ファイルを指定します。問題発生時のトラブルシューティングに使います。
- log_level
- ログ出力の詳細度を設定します。例: notice、warning、error、debug など。
- listen
- 接続先のアドレスまたはソケットを指定します。例: 127.0.0.1:9000 や /var/run/php-fpm.sock。
- listen.owner
- ソケットファイルの所有者を設定します。
- listen.group
- ソケットファイルのグループを設定します。
- listen.mode
- ソケットファイルの権限(パーミッション)を設定します。
- user
- プールの実行ユーザーを指定します(例: www-data、nginx など)。
- group
- プールの実行グループを指定します。
- chdir
- プールの作業ディレクトリを設定します。基本的にはウェブアプリのルートに近い場所。
- pm
- プロセス管理モードを設定します。static、dynamic、ondemand のいずれかを選択します。
- pm.max_children
- 同時に動作できる子プロセスの上限を指定します。
- pm.start_servers
- 起動時に作成される子プロセスの初期数を設定します。
- pm.min_spare_servers
- 動的モード時の最小アイドル子プロセス数を設定します。
- pm.max_spare_servers
- 動的モード時の最大アイドル子プロセス数を設定します。
- pm.max_requests
- 各子プロセスが処理するリクエストの上限。超えると再起動することがあります。
- pm.status_path
- ステータスページのパスを設定して、監視用の情報を取得できるようにします。
- request_terminate_timeout
- リクエストの最大実行時間を制限します。超過すると子プロセスが終了します。
- request_slowlog_timeout
- スローとみなすリクエストの閾値を設定します。
- slowlog
- 遅いリクエストのログ出力先ファイルを指定します。
- rlimit_files
- 開くことができるファイル数の上限を設定します。
- rlimit_core
- コアダンプの生成に関するリミットを設定します。
- catch_workers_output
- 子プロセスの標準出力/標準エラーをログにキャプチャするかどうかを設定します。
- clear_env
- 起動時に環境変数をクリアするかどうかを設定します。
- env
- PHP-FPM に渡す環境変数を設定します(例: env[VAR]=value)。
- www.conf
- デフォルトのプール設定ファイル。実運用では www という名前のプールを使うことが多いです。
- pool.d
- プール設定ファイルを格納するディレクトリ。複数のプールを分離して管理します。
- pool
- PHP-FPM の処理グループを指します。例: www、api など、用途ごとに分けて設定します。
php-fpm.confの関連用語
- PHP-FPM
- PHP FastCGI Process Manager。PHPアプリをFastCGIとして実行・管理するサーバーの仕組みです。
- php-fpm.conf
- PHP-FPMのグローバル設定ファイル。全体の挙動とデフォルト値を決定します。
- php-fpm.d
- プールの設定ファイルを格納するディレクトリ。includeディレクティブで読み込まれます。
- www.conf
- 実際のプール設定ファイルの代表例。通常はwww.confという名前で配置されます。
- プール (pool)
- PHP-FPM内の処理グループ。サイトやアプリごとに独立した設定を持ち、同じFPMデーモン内で複数作成できます。
- listen
- プールが待ち受けるアドレス。UnixソケットまたはTCP/IPで接続を受け付けます。
- listen.owner
- Unixソケットの所有者を設定します。
- listen.group
- Unixソケットの所属グループを設定します。
- listen.mode
- Unixソケットのファイル権限を設定します。
- listen.backlog
- TCP接続のバックログ(待ち行列)最大数を設定します。
- listen.allowed_clients
- TCPリスン時に許可するクライアントのIPを制限します。
- user
- PHP-FPMの実行ユーザー。セキュリティのために分離します。
- group
- PHP-FPMの実行グループ。
- chroot
- プールごとにルートディレクトリを制限するchroot設定。
- pm
- プロセスマネージャの動作モード。dynamic/static/ondemand のいずれかを選択します。
- pm.max_children
- 同時に生成できる子プロセスの上限。
- pm.start_servers
- 動的モード時に起動時に用意する子プロセス数。
- pm.min_spare_servers
- 動的モード時の最小予備プロセス数。
- pm.max_spare_servers
- 動的モード時の最大予備プロセス数。
- pm.max_requests
- 各子プロセスが再生成される前に処理するリクエストの最大数。
- request_terminate_timeout
- 1リクエストあたりの最大実行時間(秒)。
- request_slowlog_timeout
- スロー(遅い)リクエストをログ出力する閾値(秒)。
- slowlog
- 遅いリクエストを記録するファイルのパス。
- catch_workers_output
- 子プロセスの標準出力をFPMのエラーログに取り込む設定。
- rlimit_files
- 各子プロセスが開くファイル数の上限(ulimit)。
- rlimit_core
- コアダンプサイズの上限。
- security.limit_extensions
- 実行可能なファイル拡張子を制限してセキュリティを強化します。
- php_admin_value
- このプールで優先的に適用する PHP 設定値を上書きします。
- php_admin_flag
- このプールで優先的に適用する PHP フラグを上書きします。
- php_value
- 旧式の方法で PHP 設定値を上書きします(新規は php_admin_value を推奨)。
- php_flag
- 旧式の方法で PHP フラグを上書きします(新規は php_admin_flag を推奨)。
- env
- 環境変数をこのプールの PHP プロセスに渡します。
- env[NAME]
- NAME という環境変数を PHP に渡します(環境変数の個別指定)。
- clear_env
- 環境変数をクリアしてセキュリティと安定性を高めます。
- pm.status_path
- プールの状態を表示するステータスページのパスを設定します(例: /status)。
- ping.path
- ヘルスチェック用のエンドポイントパスを設定します(負荷分散の生存確認などに使います)。
- include
- 他の設定ファイルを読み込む指令。複数ファイルを組み合わせて使います。
- daemonize
- バックグラウンドで動作するかを設定します(通常は yes)。
- error_log
- エラーログの出力先ファイルパス。
- log_level
- ログの詳細度を設定します(例: notice、warning、error 等)。
- pid
- PHP-FPM のデーモンプロセスIDファイルの場所を指定します。



















