
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 status | wo 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のバージョンを変えたい場合、指定方法は非常にシンプルかつ直感的です。
# プロファイル「site1」のPHPを8.3に変更する場合
kusanagi php83 site1
# 変更後の状態確認
kusanagi status# Switch PHP version to 8.3 for profile "site1"
kusanagi php83 site1
# Check status after change
kusanagi statusKUSANAGIの場合、php81, php82, php83 といった専用のショートカットコマンドが用意されており、プロファイル名を指定するだけでNginx側のFastCGIパスやPHP-FPMの設定を裏で安全に書き換えてくれます。
「どのプロファイルが今どのPHPバージョンで動いているか」も kusanagi status を叩けば一覧で一目瞭然なため、非常に管理しやすいのが特徴です。
⚡ WordOpsスタイル:wo site update とFPMソケット管理
一方、Ubuntu+WordOpsでのPHPバージョン変更は、サイト更新コマンドである wo site update を使用します。
# 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# 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 site1 と kusanagi php83 site2 のように打ち分けるだけで、何の問題もなく個別のPHPバージョンで並行稼働します。
2. WordOpsの場合
WordOpsでも仕組みはまったく同じです。各PHPバージョンのFPMソケットが独立してプールされているため、
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をリロードすれば即座に反映されます。
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ライフを維持していきましょう!



コメント