2025年11月20日にPHP 8.5がリリースされました。
当ブログを動かしているサーバーのPHPは8.4でしたのでアップデートしてみました。
PHP 8.5の主な変更点
- パイプ演算子(|>)の追加
(関数呼び出しの連結が可能に) - 新しいURI拡張によるURLパースの改善
- max_memory_limitの追加
(メモリ制限の制御が強化) - 配列の先頭・末尾の値を取得する関数追加
(array_first() , array_last()) - [\NoDiscard]属性の導入
(戻り値の未使用を警告)
環境情報
環境の情報は下記の通りです。
- CentOS Stream 9
- Nginx 1.29.0
- PHP 8.4.16 with Zend OPcache
(dnf moduleコマンドでインストールしたもの) - WordPress 6.9
- SWELL 2.16.0
バージョンアップ手順
当該サーバーのPHPはdnf moduleコマンドでインストールしたものです。
インストール時と同様にdnf moduleコマンドで8.4をアンインストールしてから8.5をインストールする形になります。
詳細な手順はこちらの記事を参照してください。

OPcacheのエラー
8.5にアップデートしたらOPcache絡みのエラー(warning)が発生するようになってしまいました。
$ php -v
PHP Warning: Failed loading Zend extension 'opcache' (tried: /usr/lib64/php/modules/opcache (/usr/lib64/php/modules/opcache: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/opcache.so (/usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory)) in Unknown on line 0調べてみたところ、PHP 8.5からOPcache拡張モジュールは常にPHPバイナリに組み込まれロードされるようになったとのこと。
今までのバージョンのような、拡張モジュールをロードさせるための記述は不要になったようです。
OPcacheのエラーの解決方法
当該サーバーの場合、/etc/php.dディレクトリにある「10-opcache.ini」の冒頭に以下の記述がありました。
; Enable Zend OPcache extension module
zend_extension=opcache2行目の頭に「;」(セミコロン)をつけてコメントアウトしたり、行そのものを削除することでエラーを解消することができます。
$ php -v
PHP 8.5.1 (cli) (built: Dec 16 2025 15:59:07) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine
Zend Engine v4.5.1, Copyright (c) Zend Technologies
with Zend OPcache v8.5.1, Copyright (c), by Zend Technologiesまとめ
アップデート自体は設定ファイルをバックアップした後にdnf moduleコマンドを実行するだけで終了しました。
しかし予期せぬOPcacheに関する警告が表示される事態に遭遇しました。
エラー(warning)になっていたとはいえ、ブログの表示には影響がなかったようなのが不幸中の幸いでした。
この記事が同じような問題に直面した方の解決の糸口になれば幸いです。
環境によってはバージョンアップすることで不具合が発生する可能性があります。
バージョンアップはご自身の責任において実行してください。


コメント