スポンサードサーチ

VultrのHigh Frequency ComputeにCentOS 8をインストールしてUnixBenchまで行ったでCentOS 8のサーバをテストサーバとして利用していますが、WordPressなどのアプリケーションをテストしていると、画像などで最大アップロードサイズが引っかかる場合があります。

この場合、さくらインターネットのレンタルサーバで最大アップロードサイズを増やす方法で変更したupload_max_filesizeの変更が必要になりますが、php.iniで変更をしようとしたらApacheの再起動では反映ができず、php-fpmの再起動が必要です。

CentOS8のApacheではPHP-FPMが使われている

CentOS 8では、ApacheのメジャーバージョンはCentOS 7と同じ2.4ですが、MPMのデフォルトがpreforkからeventに変更になっています。

MPM(Multi Processing Module)

Apacheを起動するとhttpdプロセスが複数生成され、クライアントからのリクエストを受け付けて処理し、クライアントへレスポンスを返します。

プロセスを複数生成することで同時に複数のリクエストを処理することができるのですが、これを実現するモジュール(追加機能)がMPM(Multi Processing Module)であり、このMPMには、prefork、worker、eventの3つの設定があります。

prefork

preforkは、1つのプロセスが1つのスレッドを持ち、1つのhttpdは1つのCPUコアを使ってリクエストを処理する「マルチプロセスモデル」です。

worker

workerでは、1 つのプロセスが複数のスレッドを持ちますので、少ないプロセス数で多くの仕事を同時実行できる「マルチスレッドモデル」と「マルチプロセスモデル」のハイブリッドモデルです。

event

eventではworkerと同じく、1 つのプロセスが複数のスレッドを持つ「マルチスレッドモデル」と「マルチプロセスモデル」のハイブリッドモデルですが、プロセスを増やすときの挙動が異なります。

preforkやworkerでは必要に応じてプロセスを増やすだけですが、eventではプロセス数が足りなくなると、大量のTCPコネクションが無駄に残り続けてパフォーマンス低下を招く、という問題を回避するためのに、KeepAliveの処理を別のスレッドに割り振って通信を処理することによって、パフォーマンスの向上を図っています。

このため、PHPを動かすのに以前はmod_phpを使っていましたが、mod_phpはマルチスレッドでは使用できないため、CentOS 8のデフォルトではPHP-FPM (FPM : FastCGI Process Manager)が呼び出されるようになり、Apacheの起動と連動します。

php.iniを変更したらPHP-FPMを再起動

ちなみに、PHP-FPMを使っているかは、systemctlのステータスで確認ができます。

systemctl status php-fpm

PHP-FPMが動いていたら、以下のような表示がされます。

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-02-03 19:55:33 JST; 1 weeks 0 days ago
 Main PID: 489938 (php-fpm)
   Status: "Processes active: 0, idle: 9, Requests: 5576, slow: 0, Traffic: 0req/sec"
    Tasks: 10 (limit: 5048)
   Memory: 164.1M
   CGroup: /system.slice/php-fpm.service
           ├─489938 php-fpm: master process (/etc/php-fpm.conf)
           ├─489939 php-fpm: pool www
           ├─489940 php-fpm: pool www
           ├─489941 php-fpm: pool www
           ├─489942 php-fpm: pool www
           ├─489943 php-fpm: pool www
           ├─489956 php-fpm: pool www
           ├─495433 php-fpm: pool www
           ├─497261 php-fpm: pool www
           └─501144 php-fpm: pool www

phpinfo関数でPHPの設定を表示した場合には、Server APIのFPM/FastCGIという記載で確認ができます。

php.iniを変更したら、PHP-FPMを再起動してphp.iniの設定変更を反映させることになります。

systemctl restart php-fpm

この際に、Apacheの再起動は不要です。

ITのことで、お困りではありませんか?

ITは、コンサルティングからプロジェクトを全体を見据えて実施しなければ上手くいきません。
リソース・シェアリングは、ITのコンシェルジュとして、クライアントにとっての最適解をご提案するコンサルティングから構築・運用・解析までをワンストップで対応できるITコンサルティング会社です。
ITに関してお困りのことがあればお気軽にご相談ください。

ITプロジェクトで最適解を探すなら
御社にとって最適なWebサイト構築をするなら
失敗しないWebシステム開発をするなら
WordPressを活用したいなら
ECサイトを構築したいなら
越境ECサイトを構築したいなら
企業間取引向けECサイトを構築したいなら
マーケットプレス型ECサイトを構築したいなら
課題や事例から最適解を探すなら
リソース・シェアリングの実績
お問合せ

スポンサードサーチ