先日 OSを 13.5 → 14.4 へ上げた FreeBSDサーバーですが、ふと気が付くと PHPのバージョンが 8.2 のままであることに気が付きました。
OSを更新した時、パッケージも自動で更新されたと思っていたのですが、PHPはサーバーアプリとの依存性が高いためか、勝手にバージョンされなかったようです。以前は、自動でアップされたと思っていたんですけどね。
UPDATINGドキュメントを見てみたら、昨年末、PHPデフォルトバージョンが8.4に更新されたようです。
20251201: AFFECTS: users of lang/php83 AUTHOR: bofh@FreeBSD.org The default version of PHP has been switched from 8.3 to 8.4. If you use binary packages you should make a list of php packages before running 'pkg upgrade': # pkg info \*php83\* > ~/installed-php-ports-list After the upgrade, check with such list if all your php extensions are still installed, and reinstall them if needed. If you use mod_php83 you need to deinstall it and install mod_php84.
というわけで、8.3 ではなく、8.4 へ更新することにしました。PHP8.3 に上げていれば、8.4へ自動更新されたのかもしれないけど、今回は手動更新することにしました。
上記 記述に従い、
pkg info \*php82\*
で、インストール済み更新対象パッケージをリストアップ。
mod_php82-8.2.30 php82-8.2.30 php82-bz2-8.2.30 php82-ctype-8.2.30 php82-curl-8.2.30 php82-dom-8.2.30 php82-exif-8.2.30 php82-fileinfo-8.2.30 php82-filter-8.2.30 php82-ftp-8.2.30 php82-gd-8.2.30 php82-iconv-8.2.30 php82-intl-8.2.30 php82-mbstring-8.2.30 php82-mysqli-8.2.30 php82-pecl-imagick-3.8.0_1 php82-session-8.2.30 php82-simplexml-8.2.30 php82-tokenizer-8.2.30 php82-xml-8.2.30 php82-xmlwriter-8.2.30 php82-zip-8.2.30 php82-zlib-8.2.30 phpMyAdmin5-php82-5.2.3
pkg delete \*php82\*
で PHP8.2系を削除。
その後、「pkg install php84-x1 php84-x2 php84-x3 ………」と 82 のところを 84 に書き換えてパッケージ名指定したインストールコマンドを発行。
何らかの不具合が出るか?出たら、8.3を試してみようか。と思いながらインストールしたけど、何も不具合なし(と思う)。このまま 8.4を使うことにしました。
驚くほど何も起きなかったのでメモするほどではないかもしれませんが、過去、PHPを更新するとよく(インストールディレクトリーの変化で)トラブルが発生していたので、今回も、その過程を記録しておきました。