こんにちは!
先日古いWordPressサイトのバージョン更新作業をやったのでメモを残しておきます。
更新前の状況
- WordPress本体のバージョン:4.7.26(4.7のリリースは2016年)
- サーバーのPHPのバージョン:5.6.4(最新は8.2)
- テーマ:某有料テーマバージョン 1.1(1.1は2015年リリース。最新版は4.2.1)
- 各プラグイン:5年以上更新なし
やったこと
- バックアップ取得
- テスト環境作る:移行元と移行先のバージョンを合わせる
- インポート
- 互換性を確かめてプラグイン更新
- テーマをtwenty fifteenに変更&テーマを更新
- サーバーのPHPを更新
- WordPress本体を更新
- 有料テーマの最新版をダウンロード→アップロード&有効化
- 元の外観と大きく異なってしまうところを追加CSSで調整
- 本番環境で同じことを行う
ちょっと項目が多いですが、順番に説明していきます。
①バックアップ取得
- All-in-One WP Migrationでエクスポート
- FTPでWebデータをダウンロード
- サーバーのphpMyAdminからデータベースをエクスポート
All-in-One WP MigrationでWebデータもデータベースの情報もエクスポートできますが、何らかの事情によりインポートできなかったときのためにサーバーからもデータをバックアップを取っておきます。
8年運営しているサイトで、ブログ記事の画像データが非常に重かったためメディアを除外してエクスポートし、画像データはサイトデータインポート後にFTPで手動アップロードしました。
※メディアのデータはwp-content内のuploadsディレクトリに入っています
②テスト環境を作る:移行元と移行先のバージョンを合わせる
本番環境がPHP5.6.4、WordPressのバージョン4.7.26でしたので、同じ環境を作ります。
私のテスト環境のサーバーはエックスサーバーです。
エックスサーバーでPHP5.6などの古い環境を構築するには「Xアクセラレータ」という高速化機能をオフにする必要があります。
- WordPressをインストール
- プラグインのWP Downgradeを用いてWordPress4.7.26にダウングレード
- Xアクセラレータを解除し、PHPのバージョンを5.6に落とす。
- 本番環境のエクスポートデータをインポート
- FTPを用いてメディアをアップロード
③インポート
手順①でエクスポートしたデータをインポートします。
その後、今回除外しておいたwp-contentのuploadsの中の画像データをFTPを用いて同じくuploadsにアップロードします。
④互換性を確かめてプラグイン更新
プラグインの「詳細を表示」から「WordPressの必須バージョン」を確認し、今のバージョンがそのバージョン以降のものであれば更新を行います。
そうでないものは一旦無効化し、他の更新が済んでから更新を行います。
また、古いWordPressサイトによくありますが、すでに開発・更新が何年間も止まっているものがあったりします。
セキュリティ面の脆弱性が心配ですので、代替プラグインを探すか、ブロックなどWordPressのデフォルトの機能で補えるのであればそのように対処します。
⑤テーマをtwenty fifteenに変更&テーマを更新
有料テーマのバージョンが古いためWordPress6.3と非互換です。
そして、パスワード等が不明で有料テーマの最新版をすぐに入手できない状況だったため、元々入っててかつ互換性も問題ないであろうとりあえず元々入っていたtwenty fifteenを有効化&更新。
⑥サーバーのPHPを更新
プラグイン・テーマ(twenty fifteen)を最新版にして、バックアップ取得した上でステージングサーバーのPHPを徐々に上げ、とりあえずWordPress6.3に更新するのに必要なPHP7系に設定。
エラーなくバージョン更新成功。
⑦WordPress本体を4.7→6.3に更新
プラグイン・テーマ(有料テーマの最新版がまだ手に入らないのでtwenty fifteen)・サーバーPHPを更新したので、次はWordPress本体を更新。
こちらも問題なく成功!
⑧有料テーマの最新版をダウンロード→アップロード&有効化
なんとかお客様から情報をいただき、有料テーマの最新版をダウンロード成功。
またバックアップ取得。
テンプレートファイルなどをカスタムしている形跡はないため、既存の古いバージョンのテーマを削除し、外観→新規追加→テーマのアップロードからインストール。
バグもなくインストール成功!
⑨元の外観と大きく異なってしまうところを追加CSSで調整
テーマに関しては8年分もアップデートしたので、やや外観が元と異なってしまう箇所がありました。
ヘッダーの色、グロナビのホバー時の背景色などが異なっていたので、そちらはまだ更新前の状態の本番サイトを参照しつつ、テスト環境にてカスタムCSSで元の仕様に戻しておきました。
また、プラグインで表などの一部のUIをカスタムしていましたが、そちらも数年分のアップデートでフォントサイズ等が異なっていたので、そちらもカスタムCSSで調整しました。
※このやり方が正しいのか確信はありませんが、サイトの外観に関しては原状復帰する必要がありましたので変わってしまったUIはカスタムCSSで再現しました
⑩本番環境で同じことを行う
テスト環境でしっかり準備したので、あとは本番環境で同じことをするのみです!
特別大きく困ることもなく、無事に更新成功しました!
まとめ
古いWordPressの更新はまずテスト環境でやりましょう!
本番環境と同じ環境を用意して一つ一つ更新を試し、エラーを解決できればあとは本番環境で再現するのみです。
各工程で都度バックアップを取る、テスト環境で試す、ということを丁寧に行うことが肝心です。
今回の記事がなにか参考になりましたら幸いです!
最後までお読みくださりありがとうございました!