数年前に作ったきり放置していた自作のWordPressブログがありました。ダッシュボードには更新の通知が山積み、PHPのバージョンも古いままです。このまま朽ちさせるのも忍びないので、腰を据えて立て直すことにしました。エンジニアらしく、手順とつまずきを記録しておきます。
現状の確認と方針
まず状態を確認したところ、WordPress本体は5.2系、PHPは古い5系のままでした。この状態でいきなり本体を最新へ上げると、まず動きません。最新のWordPressは新しいPHPを前提にしているためです。
そこで方針は「PHPを先に、本体は後で」と決めました。順番は次の通りです。
- バックアップ(データベースとファイル一式)
- レンタルサーバーのPHPを7.4へ更新
- 動作確認のうえWordPress本体を最新へ更新
- テーマやメニューなど周辺の整備
放置サイトの更新は、必ずバックアップを取ってから始めます。失敗しても戻せる状態を作っておくのが鉄則です。
PHPを7.4に上げる
レンタルサーバーの管理画面には、たいていPHPのバージョン切り替え機能があります。今回はまず7.4を選びました。いきなり最新の8系にしなかったのは、古いプラグインやテーマが8系で動かない可能性を考えたためです。段階を踏むほうが安全です。
切り替え後にサイトを一通り確認し、表示崩れやエラーが出ていないかを見ました。幸い大きな問題はなく、ここは順調に進みました。
本体更新でぶつかったトラブル
問題は本体更新で起きました。管理画面から更新をかけると、途中で失敗します。ログを見ると、更新ファイルのダウンロード段階でSSL証明書関連のエラーが出ていました。古い環境が原因で、配布サーバーとの通信の検証に失敗していたのです。
対処としては、サーバー側の証明書情報(CA証明書)が古いことが原因だったため、そこを新しくすることで解消しました。この手のエラーは「ダウンロードに失敗しました」としか表示されないことも多く、ログを追わないと原因にたどり着けません。エラーメッセージを鵜呑みにせず、通信のどの段階で止まっているかを切り分けるのが大事だと改めて感じました。
証明書の問題を解けば、あとは順に本体が最新まで上がっていきました。
テーマをCocoonに変更
本体が新しくなったところで、古いテーマは表示も設定も今どきではありませんでした。そこで、日本語情報が豊富で扱いやすいCocoonへ変更しました。
テーマを替えるとメニューやウィジェットの割り当てがリセットされるため、グローバルメニューを作り直し、記事一覧やカテゴリーの導線を整えました。子テーマを使って、カスタマイズは本体更新で消えない形にしています。
REST APIとメニューの整備
最後に、外部連携やヘッドレス的な使い方も見据えて、REST APIが正しく応答するかを確認しました。放置期間中にセキュリティ目的でAPIを塞ぐ設定を入れていたので、必要な範囲だけ開け直しました。
メニュー整備とあわせて、パーマリンク設定の再保存やサイトマップの確認まで行い、ようやく人に見せられる状態に戻りました。
まとめ
放置したWordPressの立て直しは、順番さえ間違えなければ怖くありません。ポイントは、バックアップを取ること、PHPを先に段階的に上げること、そしてトラブル時はエラー表示だけでなくログで切り分けることです。今回のSSL証明書エラーのように、原因が環境側にあることも珍しくありません。動かなくなった資産も、手を入れれば十分に現役に戻せます。同じように放置サイトを抱えている方の参考になれば幸いです。


コメント