XserverのPHP 8.1リリースに伴い、WordPress 6系での高速化を検証してみた
2022年7月25日にXserverが『PHP 8.1』導入のアナウンス
2021年の11月にPHP8.1がリリース。PHPの公式サイトによると高速化されたPHP8.0に対して、さらに3.5%の高速化を達成したとされています。 WordPressはかなり以前のバージョン5.6からPHP8.0に対応していましたが、WordPressもバージョン 6系が主流になり、PHP8 のマイナーバージョンアップのタイミングに伴い、一部の管理サイトにPHP 8.1 を導入してみました。
PHP8.1リリース!
PHP8.1は、PHPのメジャーアップデートです。 Enum、読み取り専用プロパティ、callableの新シンタックス、Fiber、交差型、パフォーマンス向上など数々の新機能があります。
WordPressバージョンとPHPバージョンの対応表
WordPressバージョン | PHPバージョン(動作環境) | PHPバージョン(推奨環境) | MySQL |
---|---|---|---|
6.0 | 5.6.2 – 8.1 | 7.4以上 | 5.7以上 |
5.9 | 5.6.2 – 8.1 | 7.4以上 | 5.7以上 |
5.7 – 5.8 | 5.6.2 – 8.0 | 7.4以上 | 5.6以上 |
5.6 | 5.6.2 – 8.0 | 7.4以上 | 5.6以上 |
5.5 | 5.6.2 – 7.4 | 7.4以上 | 5.6以上 |
PHP8.1 CGI版の導入
ドメイン単位でバージョンの切り替えが可能なので万が一不具合が発生した場合でもすぐに元のバージョンに戻すことが可能です。 この柔軟さにより専用サーバやVPSにはない、共用サーバホスティングプランならではの運用が可能となります。
PHP8.1 導入後のWordPress検証
PHP8では、関数やパラメータの処理がより厳格になりました。 弊社コーポレートサイトでもエラーが返されるテンプレートがいくつか発生しました。 関数や変数の処理にNullが返るとエラーになるようなので、戻り値がNullにならないよう、一部の条件分岐を改修するだけの処置で済みました。 今回のような複雑な機能がないコーポレートサイトなどでは大きな不具合は発生しませんでしたが、一部のプラグインの併用やテンプレート構造などによっては致命的なエラーが発生する場合もあるようですので慎重に導入、検証する必要はありそうです。
高速化の検証
Before PHP7.4.28 + WordPress 5.9 After PHP8.1.6 + WordPress 6.0.1 ※弊社コーポレートサイト ステージング環境
簡易的ですがGoogle PageSpeed Insightsを複数回走らせて高速化を検証してみました。
PHPの公式サイト通り数パーセントのわずかな差かと思いますが確実にスピードの向上は得られた結果です。
JIT設定でより高速化を目指す
重複する[Zend Optimizer]で記述しているopcache.jitは削除するかコメントアウト化 → ;opcache.jit = off
JITとはPHP8.0から追加された「OPcache」の拡張機能です。サーバー側のCPUでPHP処理をキャッシュし、同一PHPファイルの再アクセス時に処理実行のCPU負荷軽減やPHPプログラム処理の高速化を図るPHPの拡張モジュールです。
;-- php.iniに追記 --
[JIT]
zend_extension = opcache
opcache.enable = 1
opcache.jit = on
opcache.jit_buffer_size = 128M