WordPressのPHPバージョン変更手順比較!KUSANAGIプロファイル単位 vs WordOpsのFPMソケット管理

この記事は約8分で読めます。
この記事が役立ったらブックマーク! あとで読み返したり、環境構築時のリファレンスに活用できます
B! はてなブックマークに追加

WordPressを長期間運用していると絶対に避けて通れないのが、「PHPのバージョンアップ作業」 です。
テーマやプラグインの互換性を確認しながら、PHP 8.1から8.2、そして8.3へと安全にステップアップさせていく必要がありますが、この「サイトごとのPHP切り替え」のノリが、KUSANAGIとWordOpsでは大きく異なります。

  • KUSANAGI: プロファイル(サイト)ごとにワンコマンドでOS標準〜独自パッケージのPHPをサクッと切り替える設計
  • WordOps: 裏で独立して動く phpX.X-fpm のUNIXソケットを、NginxのVhost設定ごとサクッと切り替える設計

どちらも「CLIコマンド一発で切り替えられる」という手軽さは共通していますが、コマンドの打ち方やマルチバージョン共存の裏側の仕組みにはそれぞれの思想が強く出ています。
今回は、KUSANAGIの kusanagi php コマンドに手が慣れきった管理人が、WordOpsでのPHP切り替え手順やマルチバージョン管理のリアルについてまとめておきます。

💡 コマンド比較:PHPバージョン変更の基本手順

まずは一番よく使う「特定サイトのPHPバージョンを変更する」コマンドの対比から見ていきましょう。

項目KUSANAGI (KUSANAGI 9)WordOps
PHPバージョン変更kusanagi php83 <profile>wo site update example.com --php=8.3
現在値の確認kusanagi statuswo site info example.com
対応PHPバージョンPHP 7.4 / 8.0 / 8.1 / 8.2 / 8.3 等PHP 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 等
切替の裏側の仕組みプロファイルのNginx/FPM設定書き換えNginxの upstream 指定(FPMソケット)切替

🔍 KUSANAGIスタイル:直感的で分かりやすい kusanagi phpXX

KUSANAGI(特にKUSANAGI 9)でPHPのバージョンを変えたい場合、指定方法は非常にシンプルかつ直感的です。

Bash
# プロファイル「site1」のPHPを8.3に変更する場合
kusanagi php83 site1

# 変更後の状態確認
kusanagi status
Bash
# Switch PHP version to 8.3 for profile "site1"
kusanagi php83 site1

# Check status after change
kusanagi status

KUSANAGIの場合、php81, php82, php83 といった専用のショートカットコマンドが用意されており、プロファイル名を指定するだけでNginx側のFastCGIパスやPHP-FPMの設定を裏で安全に書き換えてくれます。
「どのプロファイルが今どのPHPバージョンで動いているか」も kusanagi status を叩けば一覧で一目瞭然なため、非常に管理しやすいのが特徴です。

⚡ WordOpsスタイル:wo site update とFPMソケット管理

一方、Ubuntu+WordOpsでのPHPバージョン変更は、サイト更新コマンドである wo site update を使用します。

Bash
# example.com のPHPを8.3に変更する場合
wo site create example.com --wp --redis --php=8.3 # 新規作成時
wo site update example.com --php=8.3               # 既存サイトの変更

# サイトの適用状況を確認
wo site info example.com
Bash
# Switch PHP version to 8.3 for example.com
wo site create example.com --wp --redis --php=8.3 # On initial creation
wo site update example.com --php=8.3               # For an existing site

# Verify applied configuration for the site
wo site info example.com

🛠️ 裏側で何が起きているのか?(FPMソケットの切り替え)

WordOpsの面白いところは、Ubuntu上に php7.4-fpm, php8.1-fpm, php8.2-fpm, php8.3-fpm といった各バージョンのPHP-FPMサービスが独立して同時に常駐稼働している点です。
それぞれのPHP-FPMは、以下のようなUNIXドメインソケットを開いて待機しています。

  • /run/php/php82-fpm.sock
  • /run/php/php83-fpm.sock

wo site update example.com --php=8.3 を叩くと、WordOpsはNginxのバーチャルホスト設定(/etc/nginx/sites-available/test-site.online 内で読み込まれるUpstream設定)を書き換え、Nginxが接続しにいくPHP-FPMのソケットを php8.3-fpm.sock へと瞬時に切り替えます。
必要なバージョンのPHP-FPMパッケージがシステム内に存在しない場合は、WordOpsが自動的に apt 経由で対象のPHPバージョンと関連モジュールをリポジトリから取得・インストールしてくれるため、事前準備の手間もほぼゼロです。

🔀 サイトごとのマルチバージョン共存はどうなる?

複数のWebサイトを運用している場合、「Aサイトは古いプラグインがあるからPHP 8.1のまま据え置き、Bサイトは最新のPHP 8.3へ昇格させる」といったマルチバージョン共存運用が必須になります。

1. KUSANAGIの場合

プロファイルごとに独立した設定を持っているため、kusanagi php81 site1kusanagi php83 site2 のように打ち分けるだけで、何の問題もなく個別のPHPバージョンで並行稼働します。

2. WordOpsの場合

WordOpsでも仕組みはまったく同じです。各PHPバージョンのFPMソケットが独立してプールされているため、

Bash
wo site update site1.com --php=8.1
wo site update site2.com --php=8.3

と設定しておけば、site1.com はPHP 8.1のソケットへ、site2.com はPHP 8.3のソケットへリクエストが振り分けられ、1台のベアメタルサーバー上で完全に独立したマルチバージョン環境が実現します。

⚙️ php.ini(チューニングパラメータ)の編集位置の違い

PHPのバージョンを変えた際によくやるのが、memory_limit(メモリ上限)や upload_max_filesize(ファイルアップロード制限)などのチューニングです。ここもパスが大きく異なります。

  • KUSANAGI:/etc/opt/kmi/php74/php.ini/home/kusanagi/<profile>/... 付近(バージョン・プロファイル依存)
  • WordOps:/etc/php/8.3/fpm/php.ini または /etc/php/8.3/fpm/conf.d/

WordOps(Ubuntu)の場合は、Linux標準の /etc/php/X.X/fpm/php.ini に綺麗に整理されているため、Linuxを触り慣れている人なら「あ、いつものUbuntuのPHP設定パスだな」と直感的に触ることができるのも嬉しいポイントです。

設定変更後は以下のコマンドでFPMをリロードすれば即座に反映されます。

Bash
wo stack reload --php83
# または(Or using systemctl:)
systemctl reload php8.3-fpm

📝 結論:作法は違えど、どちらも切り替えは一瞬でストレスフリー!

  • KUSANAGI:kusanagi php83 <profile> というサイト(プロファイル)起点の直感的なコマンド体系。
  • WordOps:wo site update <domain> --php=8.3 というサイト更新(Upstreamソケット変更)の作法。

KUSANAGIの専用コマンドに慣れていると、最初WordOpsの --php=8.3 オプション指定には「お、そっちの構文か!」と一瞬戸惑いますが、慣れてしまえば挙動は非常に素直です。
何より、裏でUbuntu標準のPHP-FPMソケット(phpX.X-fpm.sock)が綺麗に分かれて管理されているため、トラブルシューティングの際もログ(/var/log/php/8.3/error.log 等)を追いやすく、ベアメタルサーバーでの運用において非常に見通しが良いと感じました。
プラグインの互換性チェックをしつつ、WordOpsでサクッと最新のPHP 8.3環境へ引き上げて爆速WordPressライフを維持していきましょう!

コメント

タイトルとURLをコピーしました