このブログを支えている WordPress は定期的にバージョンアップをしていますが、ベースとなる PHP のバージョンが 7.3 だったので、ダッシュボードで警告がでるようになってきました。/etc/debian_version を見てみると 10 buster のままだったので、OS の dist-upgrade を兼ねて、いろいろとアプデしてみました。
クラウドサーバー
サーバーは「さくらの VPS 1G」をずっと使ってます。もう10年以上になるかな。こういう大型アプデの時に、さくらの VPS はスナップショットが取れないので気を遣いますね…。
WP が動けばそれ以外は何もいらないので AWS の Lightsail あたりに引っ越そうかと考えました。
引っ越す場合は、All in one Migration and Backup プラグインで WP データをエクスポートしておいて、新しいインスタンスでインポートするのが手軽そうです。あとは証明書を移動して、DNS を書き換えて完了。
Lightsail $5 | Lightsail $7 | さくらVPS 512M | さくらVPS1G | |
---|---|---|---|---|
料金 | 5 usd (786円) | 7 usd (1,101円) | 616円 (年払い・大阪) | 858円 (年払い・大阪) |
メモリ | 0.5GB | 1GB | 0.5GB | 1GB |
CPU | 2コア | 2コア | 1コア | 2コア |
ストレージ | 20GB SSD | 40GB SSD | 25GB SSD | 50GB SSD |
スナップショット | 可能 | 可能 | 不可能 | 不可能 |
さくらのVPSを年払いにしていて半年も経ってない点や、円安の影響、Lightsail の IPv4 廃止関連の価格改訂も相俟って、さくらの方がやや割安になっていたので引っ越しはナシになりました。
こうやって表にしてみると Lightsail $5 プランは仮想コアが2つ付いてるんですね、なかなか魅力的。でも512MBで昨今の WP は満足に動いてくれるんだろうか。まぁ DNS は Route53 を使っているので、AWS にまとめたい気持ちは消えた訳ではありませんが、一旦保留にしましょう。
Debian のアップデート
最新 LTS (stable) の 12 にしたいと思います。いきなり 10 から 12 にすると弊害が出そうなので、まずは 11 にすることにしました。
/etc/apt/source.list を s/buster/bullseye/ して、s|buster/updates|bullseye-security| します。
apt update && apt upgrade && apt dist-upgrade && reboot
です。良い子はバラして実行するよ。再起動が終ったら
apt autoremove
します。
途中、sudoers や ssh_config, nginx などの設定ファイルをどうするか聞いてきますが、全キープ (default=N) で大丈夫でした。dist-upgrade のリリースノートは q で閉じます。
バージョン 11 になったことを確認したら、次は 12 にします。
同じく /etc/apt/source.list を s/bullseye/bookworm/g します。また、 $ に non-free non-free-firmware を追記します。そして、
apt update && apt upgrade && apt dist-upgrade && reboot
で、再起動が終ったら
apt autoremove
します。
こちらも設定ファイルをどうするか聞いてきますが、全キープで OK でした。
バージョン 12 になったことを確認します。
cat /etc/debian_version
PHP の更新
ブログにアクセスしてみると 502 Bad gateway と表示されるので、nginx は生きているようです。
tail /var/log/nginx/error.log
してみると、unix:/var/run/php/php7.3-fpm.sock が迷子みたい。今回、php-fpm は 8.3 になったので、/etc/enginx/site-enable/(サーバー設定) の fastcgi_pass を正しく書き直します。
systemctl enable php8.3-fpm.service
をして start して status を見ると active(running) で正しく動いたっぽいので、もう一度ブラウザからアクセスすると、「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。 」というメッセージがブラウザ上に表示されました。やったぜ、とりあえず WP は復活した。あとは DB との接続です。
apt -y php8.2-mysql php8.2-gd php8.2-mbstring
して php-fpm を reload したら、晴れて正しく表示されました。
WP ダッシュボードの「PHPバージョンが古いよ!」という警告文も出なくなりました。また、PHP7.3 だと動かなくなっていた Site kit by Google プラグインも正しく動くようになりました。
OS のメジャーアップデートを2回かけるという大技をやってのけたわけですが、昔に比べるとほとんどつまづくところもなく、すんなりとアプデできちゃうのが素晴しいです。OSS コミュニティの力に脱帽しまくりです。もっと早くやっておけば良かったですね。