CentOS 8ではphp.iniの変更後にApacheではなくphp-fpmの再起動が必要

【PR】当Webサイトのコンテンツにはプロモーション(広告)が含まれています

スポンサードサーチ

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の再起動は不要です。

ECサイト&マーケットプレイスサイトを低コスト・短納期で構築するなら

多言語・多通貨対応ECサイト&マーケットプレイスサイト構築パッケージ CS-Cart は、B2C、B2B、B2B2C、B2B2Bのどのビジネスモデルにも対応したECサイト&マーケットプレイスサイトを低コスト・短納期で構築が可能です。

ECサイトやマーケットプレイスサイトの構築を検討している場合には、是非ご検討ください。

経営課題の解決でお困りではありませんか?

DXを始めとするITを使った経営課題の解決が上手くいっていない企業は数多くあります。

それは、単なるソリューションの導入や、社内人材への丸投げとなっており、課題解決がゴールになっていないからです。

そのためには、経営とITを理解した人材が、経営者層と共に取り組み、経営者の頭の中を可視化することが必須要件です。

現在、1時間の無料オンライン・コンサルティングを実施しております。

是非この機会にご相談ください。

経営課題を解決するWebサイト構築の最適解は?

経営課題を解決するWebサイトとは、何をおいてもWebサイトに集客する事が必須要件です。

そうなると、最強のWebサイトとは「検索エンジンへの登録と分析、GA4での現状分析ができ、集客のための実施施策に落とし込みができ、コンバージョンに繋げられ、改善の分析ができるWebサイト」一択です。

まずは、現状のWebサイトが経営課題を解決することができるのかをまずご相談ください。

ECサイトの最適解はクライアント毎に異なります

経営課題を解決する最適なECサイト、越境ECサイト、BtoB ECサイト、マーケットプレイスを構築するためのシステムは、クライアント毎に異なります。

まずは、御社にとって経営課題を解決するには、どういったシステムが必要であり、ASP、SaaS、パッケージ、フルスクラッチのどれが最適なのかの検証が必要です。

スポンサードサーチ