MENU

WordPressのマイグレーション・bitnami/Synology-NASの活用

目次

はじめに

サイトを立ち上げて半年を過ぎ、結構記事も増えてきました。心配性なので定期的にバックアップしていますし、Amazon Lightsailも日次でスナップショットも撮っています。それでも、もしもサーバーに不具合が起きたら?など、不安の種はいつまでも残ります。昔からITに関してはペシミストなので心配事は絶えません、困ったものです。(^^;  Synology NASにbitnami-WordPress仮想環境を構築しましたので、早速マイグレーションの実践検証を行います。将来のサイト拡張の予行演習です。

マイグレーションの方針検討

今回はマイグレーションの一環として、ローカル環境にサイト間コピーを行います。ですがCMS(コンテンツ管理システム)を運営する上で、マイグレーション方法を知っておく事はとても重要です。苦労して書き上げたコンテンツは私にとってはお宝そのものです。また、今回はコピー先サイトは検証ステージとして使いますので、継続的な記事の同期方法についても整理しておきます。まずはマイグレーションでの一括コピーを行い、その後にサイト間での記事の同期方法を調べます。

Step1・WordPressのマイグレーション

まずは、既に運用中であるバックアップからのマイグレーションを検討します。CSMのエクスポートとインポートにはコストが必要なので、将来的な日次運用からマイグレーションができると効率的です。

UpdraftPlusを使ってサイトをバックアップ/レストア

このサイトはこのツールで手動バックアップを行っています。幸い、AmazonLightsailではレストアが必要な状況に陥る事態にはなっていません。とても優秀なバックアップツールなので、このツールの利用事例としてサイト間コピーに利用しました。手順が分かれば、今後のレストアやサイト間コピーも捗ります。

UpdraftPlusプラグインはサイトのバックアップが主な機能でサイト間コピーはサポート外です。違う方法でのサイト間コピーについても簡単ですが後ほどご紹介します。

バックアップ/復元タブから今すぐバックアップを押下してバックアップを開始します。

図 1. UpdraftPlusの管理画面

バックアップ項目をチェックし今すぐバックアップを押下します。

バックアップ項目:

  • バックアップにデータベースを含める
  • バックアップ内のすべてのファイルを含める
  • このバックアップをリモートストレージに送信
図 2. 新規バックアップの項目選択

バックアップが始まります。

図 3. バックアップの実行

バックアップデータの編集

UpdraftPlusで作成したバックアップは、サイト間コピー用には作られていません。作成したバックアップファイルに修正を加える必要があります。

バックアップデータを入手します。私はバックアップをGoogleドライブに保存しているので、そちらからダウンロードしました。もちろんUpdraftPlusからもダウンロードできます。

図 4. Googleドライブからバックアップをダウンロード

UpdraftPlusは右にある様に5つのバックアップファイルが作成されます。修正対象となるファイルは拡張子が.gzとなっているファイルです。データベースのバックアップファイルの様です。

  • backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db.gz
  • backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-others.zip
  • backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-plugins.zip
  • backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-themes.zip
  • backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-uploads.zip

.gzの解凍は、MacOSのターミナルから、gzipコマンドを使って行いました。

バックアップファイルのあるフォルダに移動してdbのバックアップファイルを解凍します。

% ls
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db.gz
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-others.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-plugins.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-themes.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-uploads.zip

# ファイル名は適時置き換えて下さい。
% gzip -d backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db.gz

% ls
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-others.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-plugins.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-themes.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-uploads.zip

解凍したファイルを編集し、記載されているサイトURLを移行先のURLに修正します。移行先のURLは今現在は仮想環境に割り振ったIPアドレスとしますので、置換条件は以下のとおりです。

  • https://www.to-digitalarts.net http://xxx.xxx.xxx.xxx
    • 検証環境はTSL設定をしていませんのでhttpと設定しています
    • 今後、検証環境もTSL設定を行う予定です

テキストエディタで修正して問題ないです。私はCotEditorで一括変換しました。オープンの際「書類に複数の改行コードが混在しています」と警告が出るかもしれません。これは「無視」で問題ありません。

修正した設定ファイルをgzipで再圧縮します。


% gzip backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db

% ls
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-db.gz
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-others.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-plugins.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-themes.zip
backup_2023-05-23-1414_ToDigitalARTs_blog_7d2db4b11c09-uploads.zip

以上でレストアの前準備は完了です。大した手間ではありませんが、将来的にはこの手順は使用できなくなるかもしれません。その際は、有償プランを検討する必要がありそうです。

クローンサイトにバックアップをレストア

バックアップファイルの編集が終わったので、早速クローンサーバーへレストアします。

ローカルに立ち上たWordPressへログインします。ログインユーザーは仮想環境のWordPress初期ユーザーuserでログインします。

図 5. 仮想環境のWordPressへログイン

UpdraftPlusプラグインをインストールします。

図 6. 仮想環境へもUpdraftPlusをインストール

UpdraftPlusのメニューからレストア操作に入ります。Upload backup filesを押下してアップロードを開始します。

図 7. レストアの開始

バックアップデータ全てをUpdraftPlusにアップロードします。

図 8. バックアップデータをアップロード

アップロードが完了したらRestoreを押下するとレストアの開始です。

図 9. レストアの実行

レストアの実行

レストアの間は見守るしかありません。(^^; UpdraftPlusプラグイン、優秀過ぎです。

レストア項目はすべてをチェックし、Nextを押下してください。

図 10. レストア項目をすべてチェック

覚悟を決めて…Restorを押下してください。

図 11. レストアの確認メッセージ

粛々とレストアが進みます。

図 12. レストアの進捗

後は、元サイトのアカウントでの操作です。元サイトの管理者権限のアカウントでログインしてください。レストア実行前に使用した初期アカウントuserは抹消されています。

図 13. レストア後の管理者ログイン

レストアは無事完了しました。

図 14. レストアの完了

レストア後の調整

元サイトの情報を、ほぼ完コピーしている状態なので、いくつかの設定は早々に調整しておいた方が安全です。元サイトの構築状況でも変わりますので、一例として私の調整事項を紹介します。

UpdraftPlusの設定自体が元サイトの設定を引き継いでしまっています。実行しても不整合でエラーとなるので問題はないですが、早めに設定を見直しておきます。Googleドライブなど、クラウドストレージが利用できるので大変助かります。

図 15. 仮想環境のUpdraftPlusを再設定
図 16.. Googleドライブの設定

プラグインもすべて元サイトの設定のままでリカバリーされています。今回のマイグレーションはローカル環境がターゲットなので、SEO(検索エンジンの最適化)に関連するプラグインは全てを見直して無効にしておきます。

図 17. プラグインの調整

サイト間コピー用のプラグイン

Duplicator

移行元サイトを一つのパッケージにまとめてしまい、展開のためのインストーラーを作成するプラグインです。レストア先ではWordPress上からのレストアではなく、直接インストラースクリプト(PHP)を実行してレストアします。

All-in-One WP Migration

マイグレーション専用のプラグインです。コピー元からのエクスポート/コピー先でインポートと、シンプルにサイト間コピーができます。マイグレーション専用なので将来的に大規模になった際の移行手段として考慮しておきます。

WordPress自体が成熟しているので、マイグレーションに関しても支援プラグインがとても充実しています。個人的にはデータベースの移行ってもっと大変なイメージでしたが、考えてた以上に簡単に移動できるのはありがたいです。

URLのリダイレクト

今回はローカル環境にコピーして検証用サイトを立ち上げるので、マイグレーションというには寸足らずです。マイグレーションの締めを飾る作業としてURLのリダイレクトがあります。今後をURL変更する機会になりましたら、結果をご紹介いたします。

Step2・記事のコピー

公開サイト「To. DigitalARTs. blog」と検証サイト「Clone – To. DigitalARTs. blog」の二つが稼働しました。それぞれのサイトは別々の記事管理で運用します。とはいえ、公開サイトのバックアップとしても使えると安心なので、サイト間の記事コピーについても検証しておきます。

Export media with selected content

特定の記事や固定ページだけのエクスポート/インポートを支援するプラグインです。WordPress標準のエクスポートでは大ざっぱなエクスポートしかできないので、このExport media with selected contentプラグインを導入します。
一手間ですが、対象記事の編集者を専用ユーザーに変更しておくと、目的の記事だけをエクスポートする事ができます。もちろん、エクスポートが終わったら編集者を元に戻して完了です。

記事のエクスポート

ツール/エクスポートからメニューにアクセスします。エクスポート用の投稿者を設定しExport media with selected contentのチェックを入れてから
エクスポートファイルをダウンロードを押下してください。記事に画像が添付されたxml形式のエクスポートファイルが入手できます。

図 18. 特定記事のエクスポート

エクスポートが終わったら、記事の投稿者を元に戻しておきましょう。
特定記事のエクスポートは以上です。

記事のインポート

記事のインポートはWordPressの標準機能で行います。

ツール/インポートからメニューにアクセス、WordPressグループのインポーターの実行を押下します。今すぐインストールになってましたら、押下してインストールをするとインポーターの実行が現れます。

図 19. 特定記事のインポートを開始

WordPressのインポーター画面に切り替わりますのでファイルを選択から記事のエクスポートファイルを選択しファイルをアップロードしてインポートを押下してください。

図 20. 特定記事のエクスポートファイルを設定

インポート投稿者の設定を行い、インポートを実行します。添付ファイルをダウンロードして…にチェックを入れるとエクスポートファイルに添付された画像も同時にインポートしてくれます。既に登録されていた場合はその画像はスキップされます。

図 21. 特定記事のインポートを実行

インポートは以上です。

WordPress Multisite Content Copier/Updater

こちらのプラグインの方が希望する機能なのですが、残念ながらうまく動作しませんでした。WordPressのバージョンは検証済みなので他のプラグインとの競合かもしれません。別途検証してみたいと思います。仮想環境が用意できたので、気負わずに検証出来とても助かります。(^^)

まとめ

思った以上に簡単に移行ができてよかったです。システム権限やデータベース移行は、うまく設計しないと結構ハマると思っていたのですが、想像以上にWordPressは整備されている事が確認できました。プラグインの作者様には大感謝です、ありがとうございました。
Amazon Lightsailは安いとはいえ有料ですから、手元の環境に自由に作れるのは助かります。素人のマイグレーション作業ではありますが、参考になれば幸いです。引き続き、WordPressに関するノウハウを記事にして共有していきますので、どうぞよろしくお願いします。

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
目次