WordPressを動かすために使っているphpですが、とうとう FreeBSD11のports から消されてしまいました。
php7.2にこだわる理由はないのですが、サーバーを更新した時が7.2系で、特に不具合など感じることもなく運用出来ていて、言語のバージョンアップを行うとトラブルが発生しやすいのでそのまま7.2系を使い続けてきました。
しかし、とうとう ports から消されてしまいましたので、バージョンアップせざるを得ません。
phpの場合はphp-ftp, php-openssl などモジュールに分かれていて、必要とするモジュールだけインストールすることになりますが、7.2系に存在しているモジュールが7.4系に存在しなくなっていたり、自動で7.2系→7.4系に上げてくれるコマンドも準備されていません。
php72-7.2.34 ? orphaned: lang/php72 php72-ctype-7.2.34 ? orphaned: textproc/php72-ctype php72-curl-7.2.34 ? orphaned: ftp/php72-curl php72-filter-7.2.34 ? orphaned: security/php72-filter php72-ftp-7.2.34 ? orphaned: ftp/php72-ftp php72-gd-7.2.34 ? orphaned: graphics/php72-gd php72-hash-7.2.34 ? orphaned: security/php72-hash php72-json-7.2.34 ? orphaned: devel/php72-json php72-mbstring-7.2.34 ? orphaned: converters/php72-mbstring php72-mysqli-7.2.34 ? orphaned: databases/php72-mysqli php72-tokenizer-7.2.34 ? orphaned: devel/php72-tokenizer php72-xml-7.2.34 ? orphaned: textproc/php72-xml php72-zip-7.2.34 ? orphaned: archivers/php72-zip php72-zlib-7.2.34 ? orphaned: archivers/php72-zlib
実は、OSもFreeBSD11.3のまま運用していて、これもいつの間にかサポートサイクル切れになっています。(運用には実害はありません。)
この際ですので、OSもFreeBSD11.3から 11.4 へ更新して、そのあとでphpを7.2→7.4に上げることにしました。
過去、このパターンのOS,PHP更新は更新作業中にいろいろトラブルが発生していたのですが、今回は、特段トラブルもなく、単なる作業メモとなります。
FreeBSD11.3を11.4に上げる
- 過去に何度も行っている作業で、しかもマイナーバージョンアップであるため、特にバックアップも行わず直接作業を行いました。
# freebsd-update -r 11.4-RELEASE upgrade
この後、質問に、yes yesと答えて、必要に応じて設定ファイルなどを編集すれば良いだけ。 - 更新されるファイルが一覧されて、その後、
# freebsd-update install
# shutdown -r - 再起動後、もう一度、
# freebsd-update install
でOSバージョンアップ完了。
PHPを7.2系から7.4系に上げる
OSが上がったので、次は PHPの更新。
- php7.2系を一括で消す
# pkg delete php72\* - mod_phpを消す
# pkg delete mod_php72
消すのはこんな感じ。入れるのは、pkgコマンド任せ。
一個一個パッケージ名を比較しながらインストールするのが面倒なので、ports に含まれている wordpress を入れることにしました。
# pkg install wordpress
結果は次の通り。
Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 26 package(s) will be affected (of 0 checked): New packages to be INSTALLED: ImageMagick6-nox11: 6.9.11.6,1 fribidi: 1.0.10 graphite2: 1.3.14 gsfonts: 8.11_8 harfbuzz: 2.7.2_1 lcms2: 2.11_1 liblqr-1: 0.4.2 libraqm: 0.6.0 libraw: 0.19.5 libwmf-nox11: 0.2.8.4_15 openjpeg: 2.3.1 pcre2: 10.35 php74: 7.4.13 php74-curl: 7.4.13 php74-exif: 7.4.13 php74-fileinfo: 7.4.13 php74-ftp: 7.4.13 php74-gd: 7.4.13 php74-json: 7.4.13 php74-mysqli: 7.4.13 php74-pecl-imagick: 3.4.4 php74-tokenizer: 7.4.13 php74-xml: 7.4.13 php74-zip: 7.4.13 php74-zlib: 7.4.13 wordpress: 5.5.3,1
ただし、mod_php は自動で入らないみたいなので、mod_phpだけは個別にインストール。
# pkg install mod_php74
最後に、不要な wordpress を削除。
# pkg delete wordpress
以上で、wordpress本体に必要なパッケージが入りました。wordpress本体は必要としなくてもプラグインが必要とするパッケージもあるので、7.2系ではインストールされていて、7.4系で自動的に入らなかった、php74-dom、php74-iconv などを比較しながら入れておきました。
最後に自分のサイトにアクセスして、サイドバーやダッシュボードが問題無く動作することを確認。
以上で、今回の更新作業は終了しました。
こんなに順調な更新作業は珍しい。あとで落とし穴が見つかるのかな〜。