広告 Linuxサーバ

【Ubuntu Server 26.04 LTS】PHP-FPMを導入してApache2と連携する方法

前回の記事では、Ubuntu Server 26.04 LTSへApache2をインストールし、ブラウザからWebページを表示できるところまで確認しました。

今回はその続きとして、PHP-FPMを導入し、Apache2からPHPを実行できるように設定します。

このシリーズでは、Apache2のPHP実行方式としてmod_phpではなくPHP-FPMを利用します。PHP処理をApache本体から分離でき、Apache2のmpm_eventと組み合わせやすい構成です。

この記事で行うこと

  • PHPとPHP-FPMのインストール
  • PHPバージョンの確認
  • PHP-FPMサービスの起動確認
  • Apache2のMPM確認
  • proxy_fcgiなど必要なモジュールを有効化
  • PHP-FPM用Apache設定を有効化
  • Apache2の設定構文確認
  • phpinfo()でPHP実行を確認
  • 確認後にテストファイルを削除
  • PHP-FPMが動かない場合の基本的な切り分け

PHPとPHP-FPMをインストールする

まずパッケージ一覧を更新します。

sudo apt update

続いてPHP本体とPHP-FPM、CLIをインストールします。

sudo apt install php php-fpm php-cli

WordPressを構築する段階では追加のPHP拡張モジュールも必要になりますが、この記事ではまずApache2からPHPを実行できる基本構成を作ります。

PHPのバージョンを確認する

php -v

ここで表示されたPHPのバージョン番号は、実際の26.04環境で確認した値として記事内に残しておくと、後からバージョン差を比較しやすくなります。

PHP-FPMサービスを確認する

PHP-FPMのサービス名にはPHPのバージョン番号が含まれます。まず、インストールされたPHP-FPMのサービス名を確認します。

systemctl list-unit-files | grep fpm

表示されたサービス名を使って状態を確認します。以下のX.Yは、実際にインストールされたPHPのバージョンへ読み替えてください。

systemctl status phpX.Y-fpm

Apache2のMPMを確認する

apache2ctl -M | grep mpm

mpm_event_module が表示されていれば、このシリーズで想定している構成です。

もし mpm_prefork_module が有効になっている場合は、既存構成やmod_phpの利用状況によって対応が変わります。既に運用中のサーバでは、いきなりMPMを切り替えず、現在のPHP構成を確認してから作業してください。

Apache2でPHP-FPM連携に必要なモジュールを有効化する

sudo a2enmod proxy_fcgi setenvif

続いて、利用可能なPHP-FPM用Apache設定を確認します。

ls /etc/apache2/conf-available/ | grep fpm

表示された設定名を使って有効化します。

sudo a2enconf phpX.Y-fpm

Apache2の設定にエラーがないか確認する

sudo apache2ctl configtest

Syntax OK と表示されたら、Apache2を再読み込みします。

sudo systemctl reload apache2

PHP-FPMのソケットを確認する

ls -l /run/php/

phpinfo()でPHPが動くか確認する

Apache2経由でPHPが実際に実行されるか確認するため、テスト用PHPファイルを作成します。

echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/phpinfo.php

別PCのブラウザから、Ubuntu ServerのIPアドレスに続けて /phpinfo.php へアクセスします。

http://192.168.1.100/phpinfo.php

phpinfo.phpは確認が終わったら必ず削除してください。
phpinfo()にはPHPのバージョン、モジュール、パス、環境変数など多くのサーバ情報が表示されます。インターネットへ公開するサーバでは、残したままにしないようにします。

sudo rm /var/www/html/phpinfo.php

PHP-FPMの主要な設定ファイルを確認する

  • /etc/php/X.Y/fpm/php.ini:PHP-FPMで使用するphp.ini
  • /etc/php/X.Y/fpm/pool.d/:PHP-FPMのプール設定
  • /etc/php/X.Y/fpm/pool.d/www.conf:標準wwwプールの設定
  • /etc/php/X.Y/cli/php.ini:CLI版PHPの設定
  • /run/php/phpX.Y-fpm.sock:PHP-FPMのUnixソケット

Apache2+PHP-FPMが動かない場合の確認ポイント

PHPファイルが表示されない、ダウンロードされてしまう、500エラーになるなどの場合は、順番に状態を確認します。

1. PHP-FPMサービスの状態

systemctl status phpX.Y-fpm

2. Apache2で必要なモジュールが有効か

apache2ctl -M | grep -E 'proxy|setenvif|mpm'

3. PHP-FPM用Apache設定が有効か

ls -l /etc/apache2/conf-enabled/ | grep fpm

4. PHP-FPMソケットが存在するか

ls -l /run/php/

5. Apache2のログを確認

sudo journalctl -u apache2 --no-pager -n 50
sudo tail -n 50 /var/log/apache2/error.log

6. PHP-FPMのログを確認

sudo journalctl -u phpX.Y-fpm --no-pager -n 50

この順番で確認すると、PHP-FPMが起動していないのか、Apache2側の連携設定なのか、ソケットなのか、PHP実行時のエラーなのかを切り分けやすくなります。

この設定、自分の環境でも大丈夫?と迷ったら

Ubuntu・VPS・WordPressの設定や運用について、 「この進め方で合っている?」「この設定を実行して大丈夫?」と迷う場合は、 個別に環境を見ながら整理できます。

1つの相談テーマについて、原則メール2往復まで対応します。

Ubuntu / VPS / WordPress 技術相談を見る

PHP-FPMを再起動・再読み込みする基本コマンド

# PHP-FPM再起動
sudo systemctl restart phpX.Y-fpm

# PHP-FPM状態確認
systemctl status phpX.Y-fpm

# Apache2設定構文確認
sudo apache2ctl configtest

# Apache2再読み込み
sudo systemctl reload apache2

まとめ

今回はUbuntu Server 26.04 LTSへPHP-FPMを導入し、Apache2からPHPを実行できる構成を作りました。

PHP-FPMのサービス、Apache2のmpm_event、proxy_fcgi、PHP-FPM用Apache設定、Unixソケットまで確認しておくと、トラブルが起きたときにも原因を切り分けやすくなります。

次回はMariaDBの導入へ進みます。
Ubuntu Server 26.04 LTSへデータベースサーバを導入し、WordPressを動かすための準備を進めます。

広告

広告

オススメの記事

-Linuxサーバ
-, ,