WordPress: FreeBSD 12.4 の PHP を 8.0 から 8.1 へ上げる

しばらく前から、自動で届くFreeBSD OSのセキュリティーレポートに、PHP8.0 はサポート終了間近なので、早く8.1以上に上げろ と書かれたメッセージが届くようになっていました。

特にPHP バージョン8.0 にこだわりがある訳じゃなく、単純にOSをFreeBSD11から12に上げた時、OS側のサポートがPHP7.4から8.0に替わったためで、プログラムを書くわけじゃないのでPHPバージョンなんて何でもいい。

過去、PHPバージョンを切り替えた時、常にWordPress 運用に何らかの影響が出たので、できることならやりたくない作業です。しかし、すでに OSを12.4に上げてしまったので、PHPも8.1に切り替えるべきなんでしょう。

/usr/ports/UPDATING には、昨年末の時点で、以下のように書かれています。

20221126:
AFFECTS: users of lang/php80
AUTHOR: bofh@FreeBSD.org

The default version of PHP has been switched from 8.0 to 8.1.

If you use binary packages you should make a list of php packages
before running 'pkg upgrade':

# pkg info \*php80\* > ~/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_php80 you need to deinstall it and install mod_php81.

問題は、いつ、どのように作業するか!

いつ というのは、深夜1時過ぎ頃から作業としましょう。サーバーを停めても、困るのは邪魔なクローラーくらいですからね。
どうやっての?の方は少し考えが必要。
PHPはWordPressと絡む他、

  • Apache
  • MySQL
  • phpMyAdmin

との接続モジュールも一緒に更新する必要があり、毎回何かトラブります。pkg upgrade php81 コマンド一発じゃ終わらない!

今回の計画は次の通り。

  1. pkg install wordpress で、現時点のWordPress インストールに伴う関連パッケージ一括インストールを試してみる
  2. mod_php は手動で、抜き 入れする。
  3. テストする。
  4. phpMyAdmin は(メモとしては書いたけど、)不要。使うタイミングで入れ替えればいい。

やってみたところ、再検討が必要な状況に。

New packages to be INSTALLED:
	ImageMagick7-nox11: 7.1.0.62_2
	php81: 8.1.17
	php81-curl: 8.1.17
	php81-exif: 8.1.17
	php81-fileinfo: 8.1.17
	php81-ftp: 8.1.17
	php81-gd: 8.1.17
	php81-mysqli: 8.1.17
	php81-pecl-imagick-im7: 3.7.0_1
	php81-tokenizer: 8.1.17
	php81-xml: 8.1.17
	php81-zip: 8.1.17
	php81-zlib: 8.1.17
	wordpress: 6.1.1,1

Number of packages to be installed: 14

The process will require 124 MiB more space.
28 MiB to be downloaded.

Proceed with this action? [y/N]: 

依存関係のためか、なぜか ImageMagick が巻き込まれてしまいました。

それに、更新される phpモジュール数が現在のものと違う。というか新規インストールされるモジュール数が少ない。そして予想通り mod_phpは手動になりそう。

php80-xxx 個別拡張モジュールを抜く作業を事前に手動で行っていないため、wordpressインストールを拒否されるかと思っていたのに、pkg install コマンドだけで先に進めそうなことにちょっと驚きでした。

y で進めてみると、、、、、古いバージョンは新しいバージョンで置き換えられそうなメッセージが出てくるものの、結局

pkg: ImageMagick7-nox11-7.1.0.62_2 conflicts with ImageMagick6-nox11-6.9.12.77_2,1 (installs files into the same place). Problematic file: /usr/local/bin/Magick++-config

で、途中終了。PHPの conflict じゃなく、予想外にImageMagick のconflictで止まりました。

手動で、ImageMagick を抜いて、pkg install wordpress をやり直したところ、WordPress と php8.1系の関連モジュール(そしてバージョン違いのImageMagick)がインストールできました。
このあとで、パッケージの wordpress と mod_php80 を抜いて、mod_php81 をインストール。更に、必要かどうかはわからないけどWordPressプラグインが必要とするかもしれない(php80-xxxx なので消されてしまった)PHP8.1系モジュールを追加インストール。

pkg install php81-bz2 php81-ctype php81-dom php81-filter php81-iconv php81-mbstring php81-session php81-simplexml

mysql-server と apache24 を再起動し、サイトの状態を確認したところ、、、、ぱっと見、エラーは出ずに動いている感じ。全ページを開いてみたわけじゃないので、管理者用ページとか、メニューなんかが異常動作するかもしれませんが、致命傷はなさそう。今後もしばらく様子見です。

個人的には一大イベントでしたけど、30分もかからずに作業完了。めでたしめでたし。

コメントを残す