2022/11/24はPHP8.2のリリース予定日だったなと思い出し、検証用サーバに導入してみました。
実はPHP8.2RC7と正式リリース前でしたが、手順は変わらないのでこのまま進めます。
検証環境
before | after | |
---|---|---|
OS | CentOS Stream 8 | |
PHP | 8.1.13 | 8.2.0RC7 |
WordPress | 6.1.1 |
remiリポジトリからPHP8.1を導入済です。標準レポジトリの場合は7.2~8.0までの対応です。
remiレポジトリの導入はこの2行で行けると思います。
# yum install epel-release -f # yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -f
PHP8.1で事前確認
前回と同じ手順で比較のためのデータを取っておきます。
PHP8.1バージョンアップ直後のRequests per secondは78.07/secだったので速度低下していますね。ハードウェアは変更していないのでWordPressのメジャーバージョンアップが原因かな。
# php -v PHP 8.1.13 (cli) (built: Nov 22 2022 14:42:07) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.13, Copyright (c) Zend Technologies with Zend OPcache v8.1.13, Copyright (c), by Zend Technologies # ab -c 1000 -n 1000 https://192.0.2.128/ Requests per second: 72.28 [#/sec] (mean) Time per request: 13835.524 [ms] (mean) Time per request: 13.836 [ms] (mean, across all concurrent requests) Transfer rate: 1877.24 [Kbytes/sec] received # dnf list installed |grep php gd3php.x86_64 2.3.3-8.el8.remi @remi oniguruma5php.x86_64 6.9.8-1.el8.remi @remi php-cli.x86_64 8.1.13-1.el8.remi @remi-modular php-common.x86_64 8.1.13-1.el8.remi @remi-modular php-fpm.x86_64 8.1.13-1.el8.remi @remi-modular php-gd.x86_64 8.1.13-1.el8.remi @remi-modular php-mbstring.x86_64 8.1.13-1.el8.remi @remi-modular php-mysqlnd.x86_64 8.1.13-1.el8.remi @remi-modular php-opcache.x86_64 8.1.13-1.el8.remi @remi-modular php-pdo.x86_64 8.1.13-1.el8.remi @remi-modular php-pecl-apcu.x86_64 5.1.22-1.el8.remi.8.1 @remi-modular php-xml.x86_64 8.1.13-1.el8.remi @remi-modular
PHP8.2へアップデート開始
では早速アップデートしてみます。これも基本的な流れは前回と同じです。
# dnf module list php CentOS Stream 8 - AppStream Name Stream Profiles Summary php 7.2 [d] common [d], devel, minimal PHP scripting language php 7.3 common [d], devel, minimal PHP scripting language php 7.4 common [d], devel, minimal PHP scripting language php 8.0 common [d], devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 8 - x86_64 Name Stream Profiles Summary php remi-7.2 common [d], devel, minimal PHP scripting language php remi-7.3 common [d], devel, minimal PHP scripting language php remi-7.4 common [d], devel, minimal PHP scripting language php remi-8.0 common [d], devel, minimal PHP scripting language php remi-8.1 [e] common [d], devel, minimal PHP scripting language php remi-8.2 common [d], devel, minimal PHP scripting language
remi-8.2の行があるので更新できます。それとCentOS Stream 8の標準レポジトリにもPHP8.0が来てるんですね。
ということでモジュールをremi-8.2に切り替えてdnf updateを行います。
# dnf module enable php:remi-8.2 ==================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ==================================================================================================== モジュールストリームの有効化中: php remi-8.2 トランザクションの概要 ==================================================================================================== これでよろしいですか? [y/N]: y 完了しました! # dnf update php* アップグレード済み: php-8.2.0~RC7-8.el8.remi.x86_64 php-cli-8.2.0~RC7-8.el8.remi.x86_64 php-common-8.2.0~RC7-8.el8.remi.x86_64 php-fpm-8.2.0~RC7-8.el8.remi.x86_64 php-gd-8.2.0~RC7-8.el8.remi.x86_64 php-mbstring-8.2.0~RC7-8.el8.remi.x86_64 php-mysqlnd-8.2.0~RC7-8.el8.remi.x86_64 php-opcache-8.2.0~RC7-8.el8.remi.x86_64 php-pdo-8.2.0~RC7-8.el8.remi.x86_64 php-pecl-zip-1.21.1-1.el8.remi.8.2.x86_64 php-sodium-8.2.0~RC7-8.el8.remi.x86_64 php-xml-8.2.0~RC7-8.el8.remi.x86_64 完了しました!
完了後のお約束。php-fpmを再起動しなくても自動で切り替わってくれました。
# php -v PHP 8.2.0RC7 (cli) (built: Nov 22 2022 18:07:40) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.2.0RC7, Copyright (c) Zend Technologies with Zend OPcache v8.2.0RC7, Copyright (c), by Zend Technologies
PHP8.2の速度を確認
現時点の最新WordPress6.1.1とPHP8.2(RC7)でエラーは特にでていないようです。ただしWordPressのWP_DEBUGPHPをtrueに変更すると大量のDeprecatedが記録されています。まあPHP8.1にも完全対応はできていないので出て当然ですね。
なのでApacheBenchの速度比較だけ行います。
# ab -c 1000 -n 1000 https://192.0.2.128/ Requests per second: 76.31 [#/sec] (mean) Time per request: 13104.110 [ms] (mean) Time per request: 13.104 [ms] (mean, across all concurrent requests) Transfer rate: 1982.17 [Kbytes/sec] received
8.1.13→8.2.0RC7で5%ほど速度アップしています。まだ速くなるのかPHP!?
ApacheBench ab -c 1000 -n 1000 |
PHP 8.1.13 |
PHP 8.2.0RC7 |
---|---|---|
Requests per second | 72.28/sec | 76.31/sec |
Time per request | 13.836ms | 13.104ms |
ということでPHP8.2はまだRC7ではあるもののWordPress6.1系で大きな問題はなく、僅かな速度向上を確認できました。