【PHPーFPM】RHEL 10でApache+php-fpm連携を設定

PHP

1 はじめに

本記事は、RHEL 10におけるPHP-FPMとApache 2.4との連携設定についてまとめたものです。

ほとんどの設定項目はデフォルトのままで良いのですが、
PHP-FPMをインストールしただけでは、PHP-FPMとApacheとの連携はとれていません

本記事では、最低限のPHP-FPMとApacheとの連携設定について示します。

本記事は、以下の環境におけるPHP-FPMの設定について示しています。

2 PHP-FPMのインストールと基本設定

2.1 インストール

まず、EPELレポジトリを有効化します。

# dnf install dnf-utils epel-release

PHP-FPMは、次のコマンドでインストールします。

# dnf install php-fpm

インストール済みのPHP-FPMを更新する場合は、次のコマンドを使用します。

# dnf update php-fpm

インストール後は、サービスとして起動します。

# systemctl enable –now php-fpm

2.2 設定

PHP-FPMの設定に関するファイルを表2.2-1に示します。

Apacheと連携するだけで良いのであれば、これらのファイルの内容を変更する必要はありません。
Apache側でPHP-FPMと連携設定をする際、PHP-FPM側でどのように設定されているかを見る
くらいです。

特に見なければならないのは、“www.conf“です。
Apacheとの連携設定において、表2.2-2に示す項目の値を参照します。

2.3 動作確認

下に示す内容のPHPファイルを作成し、ドキュメントルートに配置します。

<?php echo phpinfo(); ?>

ブラウザー表示すると、その中に次の表示があればOKです。

なお、この方法では、Apacheとの通信を確認することはできません。 念のため。

3 Apacheとの連携

3.1 ApacheとPHP-FPMの連携

Apacheの設定ファイルの“FilesMatch”セクション中に、
下に示すようにUNIXソケットパスを引数にしたSetHandler”ディレクティブを追加します。

一般的な仮想ホスト設定は、次のようになります。

3.2 DOCUMENT_ROOTの明示的な設定

PHP-FPMはApacheとは独立しているため、DOCUMENT_ROOTを正しく設定する必要があります。

3.3 環境変数

PHP-FPMでは、Apacheから環境変数を適切に受け取る必要があります。

特に、“memory_limit”は下に示すようでなければ、利用しているプラグインによって動作しない
ことがあるのかもしれません。

3.4 課題

他のサイトでの設定例を見ていると、なんの説明もなく下に示す設定の一部がでてきたりします。

① 実行ユーザー・グループとパーミッション
② MPM(Multi Processing Module)

設定の有用性や正しい設定方法については、調べておかなければならないと思っています。

3.4.1 実行ユーザー・グループとパーミッション

PHP-FPMを利用するメリットは、Apache全体ではなくプール(Pool)ごとにPHPプロセスの
実行ユーザー・グループを分けることができる点にあります。

実行ユーザー・グループを分けるには、PHP-FPM側とApache側に設定が必要となってきます。
デフォルト設定では、PHP-FPMとApacheの実行ユーザー・グループは同じです。

3.4.2 MPM(Multi Processing Module)

MPMとはMulti Processing Moduleの略で、マルチプロセスを実現するための仕組みのことです。

Webサーバーへの接続数が多くなってきた場合、シングルプロセスで処理をしていれば、
効率が悪くなり、レスポンスの低下につながることになります。
レスポンスを上げるためには、マルチプロセスで処理が行えるようチューニングを行う必要があります。

RHEL 10では、デフォルトで“event”のMPMが有効になっているようです。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ

 

コメント

Add A Knowledge Base Question !

You will receive an email when your question will be answered.

+ = Verify Human or Spambot ?

タイトルとURLをコピーしました