Apacheの「MPM」をデフォルトの「preforkMPMからeventMPM」へ変更する設定とPHPをモジュールではなくCGIとして動作させるための「php-fpm」と言うパッケージを導入した。
1] Apacheで、mod_phpの代わりにphp-fpm(PHP FastCGI)を使うためPHP FastCGIモジュールをインストール。
1 2 3 4 5 6 7 8 |
#PHP-FPMのインストール $sudo apt install php7.2-fpm #必須のモジュールを有効 $sudo a2enmod proxy_fcgi setenvif #php-fpmを有効に $sudo a2enconf php7.2-fpm #mod_phpモジュールを無効に $sudo a2dismod php7.2 |
2] Apache2.4ではMPM(Multi-Processing Module)は「event MPM」がデフォルトなのに、Ubuntuでは「prefork MPM」がデフォルトなのでMPMを「prefork MPMからevent MPM」に変更。
1 2 3 4 |
#mpm_preforkモジュールを無効に $sudo a2dismod mpm_prefork #mpm_eventモジュールを有効に $sudo a2enmod mpm_event |
3] php.iniを/etc/php/7.2/apache2/php.iniからコピーしてくる。
1 |
$sudo cp /etc/php/7.2/apache2/php.ini /etc/php/7.2/fpm/ |
4] SSLファイルに追記
$sudo vi /etc/apache2/sites-available/wordpress-ssl.conf
1 2 3 4 |
#<VirtualHost> - </VirtualHost> 内に <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" </FilesMatch> |
5] apacheを再起動
1 |
$sudo systemctl restart php7.2-fpm apache2 |
6] phpinfoで[FPM/FastCGI]と表示されていればOK!
1 2 3 4 5 6 7 |
$sudo echo '<?php phpinfo(); ?>' > /var/www/html/xxxx/info.php Server API FPM/FastCGI Virtual Directory Suport disabled Configuration (php.ini) Path /etc/php/7.2/fpm Loaded Configuration File /etc/php/7.2/fpm/php.ini Scan this dir for additional .ini files /etc/php/7.2/fpm/conf.d ----- 省略 ----- |
今まで試したことがなかった「FPM/FastCGI」を導入、思ったより高速化したように感じないけど、動きが軽く感じるのと表示速度も少し速くなったのかな?