【Apache高速化】WordPressが重い?Nginxに変える前にやるべき「MPM Event + PHP-FPM」と「HTTP/2」チューニング完全ガイド【Ubuntu/AlmaLinux対応】

「Apacheは遅い」という誤解

こんにちは!「リナックス先生」です。
今日は、Webサーバーの老舗「Apache(アパッチ)」で動かしているWordPressの高速化について、徹底的にメスを入れます。

コウ君

先生、僕のVPS、ApacheでWordPressを動かしてるんですけど、最近すごく重いんです…。
ネットで調べたら「今はNginx(エンジンエックス)の時代だ!Apacheはオワコン!」って書かれてて。
やっぱりサーバーを作り直さないとダメですか?

リナックス先生

あきらめるのは早いわコウ君。
Apacheが遅いと言われる原因の9割は、「デフォルト設定(Preforkモード)」のまま使っているからよ。
最新の技術(Event MPM + PHP-FPM)を導入すれば、ApacheでもNginxに迫る爆速環境は作れるの。今回はUbuntuとAlmaLinux、両方の手順を教えるわ!

1. なぜApacheのデフォルトは遅いのか?

チューニングを始める前に、敵を知りましょう。
多くのLinuxディストリビューションでApacheをインストールすると、デフォルトで「Prefork(プリフォーク)」という動作モードが選ばれることが多いです。

Preforkの弱点

  • メモリ食い: 1つのアクセスに対して、Apacheのプロセスを丸ごと1つコピーして対応します。アクセスが増えるとメモリが枯渇します。
  • PHPが一体化: Apacheの中にPHPの機能(mod_php)が埋め込まれています。画像1枚を表示するだけでも、重たいPHPエンジンが動いてしまいます。

つまり、「無駄に重い荷物を背負って走っている状態」なのです。
これを解消するのが、今回導入する「Event MPM」「PHP-FPM」です。

2. 【最重要】MPM Event + PHP-FPM への移行

ここが今回のハイライトです。
Apacheの動作モードを「スレッドベース(Event)」に変え、PHP処理をApacheから切り離して専門部隊(PHP-FPM)に任せます。

OSによってコマンドが異なるので、お使いの環境に合わせて進めてください。

リナックス先生

※注意: 設定ファイルを書き換えるので、必ずバックアップを取ってから作業してね!

パターンA:AlmaLinux / Rocky Linux / CentOS (RHEL系)

Step 1: PHP-FPMのインストール

dnf install php-fpm
systemctl enable --now php-fpm

Step 2: MPMの切り替え

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

mpm_prefork をコメントアウト(#)し、mpm_event のコメントアウトを外します。

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_event_module modules/mod_mpm_event.so

Step 3: PHP処理先の設定

vi /etc/httpd/conf.d/php.conf

以下の記述があるか確認し、なければ追記します(mod_phpの記述がある場合は無効化してください)。

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

Step 4: Apache再起動

systemctl restart httpd php-fpm

パターンB:Ubuntu / Debian系

Ubuntuではコマンドを使ってモジュールを切り替えます。非常に簡単です。

Step 1: PHP-FPMのインストール

# PHPのバージョンに合わせてインストール(例:PHP 8.1の場合)
apt install php8.1-fpm

Step 2: モジュールの無効化と有効化

# 従来のPreforkとmod_phpを無効化
a2dismod mpm_prefork
a2dismod php8.1

# Event MPMとFastCGIプロキシを有効化
a2enmod mpm_event
a2enmod proxy_fcgi setenvif

# PHP-FPM設定を有効化
a2enconf php8.1-fpm

Step 3: Apache再起動

systemctl restart apache2

3. HTTP/2 の有効化

次に通信プロトコルの最適化です。画像などの並列読み込みが可能になり、体感速度が劇的に上がります。
※SSL(HTTPS)化が必須条件です。

AlmaLinux (RHEL系) の場合

設定ファイル(/etc/httpd/conf/httpd.confssl.conf)を開き、以下の行を追加します。

Protocols h2 http/1.1

その後、systemctl restart httpd で再起動。

Ubuntu の場合

コマンド一発で有効化できます。

a2enmod http2
systemctl restart apache2

4. コンテンツ圧縮 (Brotli) とキャッシュ

Gzipよりも高圧縮な「Brotli(ブロトリ)」を有効化し、.htaccess でブラウザキャッシュを設定します。

Brotliモジュールの確認

  • AlmaLinux: dnf install mod_brotli が必要な場合があります。
  • Ubuntu: a2enmod brotli で有効化し、Apacheを再起動します。

.htaccess の設定(共通)

ドキュメントルート(/var/www/html 等)にある .htaccess に以下を追記します。

<IfModule mod_brotli.c>
  AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 2 weeks"
  ExpiresByType image/jpeg "access plus 1 months"
  ExpiresByType text/css "access plus 1 months"
</IfModule>

5. PHP自体の高速化 (OPcache)

PHPのコンパイル結果をメモリに保存する「OPcache」を導入します。

インストールコマンド

  • AlmaLinux: dnf install php-opcache
  • Ubuntu: apt install php8.1-opcache (バージョンに合わせる)

設定確認 (php.ini または opcache.ini)

以下の設定になっているか確認しましょう。

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1

設定後は必ずApacheとPHP-FPMを再起動してください。


まとめ:Apacheでも「爆速」は作れる

お疲れ様でした!
今回のチューニングを実施したことで、あなたのApacheサーバーは:

  1. Event MPM + PHP-FPM でメモリ効率と並列処理能力が向上し、
  2. HTTP/2 で通信がスムーズになり、
  3. Brotli圧縮 で転送量が減り、
  4. OPcache でPHP実行速度が上がりました。
コウ君

先生、すごいです!
Ubuntuで試しましたけど、コマンド数行打っただけでPageSpeed Insightsのスコアが爆上がりしました!
Nginxに入れ替えなきゃいけないと思ってたけど、Apacheのままで十分ですね!

リナックス先生

ええ、それがインフラエンジニアの腕の見せ所よ。
OSごとの作法を守って適切に設定すれば、Apacheは最強のWebサーバーになるの。
自信を持って運用しなさい!

▼高速チューニングの効果を最大化するVPS

いくら設定を最適化しても、サーバー自体のCPU性能やディスクI/O(書き込み速度)が低いと限界があります。Apache + WordPressを高速に動かすために設計された、NVMe SSD搭載の推奨VPSはこちらです。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント