WEB TECKS - WEBサイト構築知識いろいろ

PHP7.4環境でPHP-FPMをインストール設定

更新日:2024-03-24 16:43:24 登録日:2024-03-13 17:04:58
[確認環境]
Amazon Linux 2
Apache 2.4.58
PHP 7.4.33
PHP-FPM 7.4.33

 PHP-FPM(FastCGI Process Manager)は、PHPのFastCGIインターフェースを使用して動作し、高速かつ効率的にPHPアプリケーションを処理するためのプロセスマネージャーです。PHP-FPMをインストールする手順は、通常のPHPのインストール手順とは異なります。以下は、PHP-FPMをAmazon Linux 2にインストールする基本的な手順です。

PHPとPHP-FPMのインストール

 Amazon Linux 2のデフォルトリポジトリにはPHP-FPMパッケージが含まれています。以下のコマンドを使用して、PHPとPHP-FPMをインストールします。

# yum install php-fpm

PHP-FPMの設定

 PHP-FPMの設定ファイルは通常/etc/php-fpm.d/www.confにあります。このファイルを編集して、PHP-FPMの動作をカスタマイズすることができます。デフォルトの設定では、必要に応じて調整する必要があります。

Apacheの設定を変更する

# vi /etc/httpd/conf.modules.d/15-php.conf

# ※↓以下全てをコメントアウトする
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#

# Cannot load both php5 and php7 modules
#<IfModule !mod_php5.c>
# <IfModule prefork.c>
# LoadModule php7_module modules/libphp7.so
# </IfModule>
#</IfModule>

#<IfModule !mod_php5.c>
# <IfModule !prefork.c>
# The ZTS module is not the supported method of executing
# PHP under apache, use the php-fpm package instead.
#
# https://wiki.apache.org/httpd/PHP-FPM
# LoadModule php7_module modules/libphp7-zts.so
# </IfModule>
#</IfModule>

ApacheとPHP-FPMの関連付け

# vi /etc/httpd/conf.modules.d/00-mpm.conf

# ↓コメントアウトする
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

# ↓コメントを外す
LoadModule mpm_event_module modules/mod_mpm_event.so

# ↓以下を追加する
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 24
MaxSpareThreads 48
ThreadsPerChild 64
MaxRequestWorkers 128
MaxConnectionsPerChild 0
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>

PHP-FPMの起動と有効化

 PHP-FPMを起動し、システムの起動時に自動的に起動するように設定します。

systemctl start php-fpm
systemctl enable php-fpm

 これで、PHP-FPMがインストールされ、実行されています。PHP-FPMは、NginxやApacheなどのウェブサーバーと組み合わせて使用することが一般的です。必要に応じて、ウェブサーバーとの連携や設定を行ってください。