Table of Contents
						
						CentOS8からPHPはFPMのeventモードを使用するように変更になった。
インストールの前提条件は、Remi Repositoryがインストール済み
Remi Repository,apacheは、別記事を参照
PHPのバージョン確認
# dnf module list php
AlmaLinux 9 - AppStream
Name      Stream       Profiles                       Summary
php       8.1          common [d], devel, minimal     PHP scripting language
php       8.2          common [d], devel, minimal     PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name      Stream       Profiles                       Summary
php       remi-7.4     common [d], devel, minimal     PHP scripting language
php       remi-8.0     common [d], devel, minimal     PHP scripting language
php       remi-8.1     common [d], devel, minimal     PHP scripting language
php       remi-8.2     common [d], devel, minimal     PHP scripting language
php       remi-8.3     common [d], devel, minimal     PHP scripting language
php       remi-8.4     common [d], devel, minimal     PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalledインストール
# dnf module install php:remi-8.3
# dnf install php-imap php-devel php-gd php-zip php-mysqlnd php-intlリセット
インストールするバージョンを変更する場合は、一度リセットを行うか、removeでアンインストールが必要
# dnf module reset php
または、
# dnf module remove phpApacheとの連携設定(パケージからインストールされる内容を一部抜粋)
# vi /etc/php-fpm.d/www.conf
----------------------------------------
[www]
user = apache
group = apache
listen = /run/php-fpm/www.sock
※1 従来の所有権・パーミッションによるアクセス制限に変更(なんとなく)
listen.owner = apache
listen.group = apache
listen.mode = 0660
;listen.acl_users = apache,nginx
;listen.acl_groups =
;listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 10000
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache
----------------------------------------# vi /etc/httpd/conf.modules.d/00-proxy.conf
----------------------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
----------------------------------------# vi /etc/httpd/conf.modules.d/00-mpm.conf
----------------------------------------
# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
LoadModule mpm_event_module modules/mod_mpm_event.so
----------------------------------------# vi /etc/httpd/conf.d/php.conf
----------------------------------------
# Redirect to local php-fpm if mod_php (5 or 7) is not available
<IfModule !mod_php5.c>
  <IfModule !mod_php7.c>
    # Enable http authorization headers
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    <FilesMatch \.(php|phar)$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>
  </IfModule>
</IfModule>
----------------------------------------Webを再起動
# systemctl restart php-fpm
# systemctl restart httpdphpのバージョン確認phpのバージョン確認
# php -v
PHP 7.4.13 (cli) (built: Nov 24 2020 10:03:34) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.13, Copyright (c), by Zend Technologiesphpのモード確認
# httpd -M | grep -i mpm
 mpm_event_module (shared)動作確認
PHPINFO
# vi /var/www/status/phpinfo.php
----------------------------------------
<?php phpinfo(); ?>
----------------------------------------https://www.chinaz.org/status/phpinfo.php

FPMのステータス
# vi /etc/php-fpm.d/www.conf
----------------------------------------
[www]
pm.status_path = /phpfpm_status
----------------------------------------# vi /etc/httpd/conf.d/status.conf
----------------------------------------
### status
<LocationMatch /phpfpm_status>
  SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
  Require all denied
  Require ip 192.168.x.
</LocationMatch>
----------------------------------------http://192.168.xxx.xxx/phpfpm_status

listen queue: ペンディングとなっているコネクションのキューの数。
max listen queue: FPMを起動してからのlisten queueの最大値。
どちらも、0でない場合はもう少しプロセスを増やした方がいい
参考URL
小黒のTECHメモ(仮): 5月 2020
CentOS 8のApache環境にPHP 7.2をインストールして使えるようにする手順 – レムシステム エンジニアブログ
CentOS 8 標準の Apache と PHP の関係について – ラボラジアン
PHP-FPM(php7.4) Apache2.4 でWebサーバ構築 on CentOS8 | 404 motivation not found
php-fpmを使ってphpを快適にfastcgiで実行する – Qiita
PHP-FPM と nginxのステータスページを見られるようにする – イケてる SaaS を作りたい (koni blog)
