この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
WordPressのバックアップが正しく行われているか実験をした。別ドメインへの移行と初期化後のWordPressへの復元が問題なくできることが確認できた。プラグインにはUpdraftPlusの無料版を使用している。無料版では別ドメインへの移行ができないためファイルを手動で編集している。基本的な使い方についても説明しているのでバックアップや移行の参考にしていただきたい。
仕様などは2018年6月のもので最新の情報と異なる可能性があります。ご了承ください。
本記事ではUpdraftPlusの無料版で対応していない別ドメインへの移行を紹介しています。バックアップデータの手動編集は通常の使い方と異なることを認識した上で自己責任でお願いいたします。
別ドメインへの移行後は必ず十分な動作確認をしてください。URLの変更により何らかの問題が発生する可能性があります。
法人や大規模サイトの場合にはリスクが高いため専門家に相談し保証のある移行サービスをご利用ください。
手っ取り早くワードプレスをバックアップしたい方は以下の記事をご参照ください。
ワードプレス簡単バックアップ~プラグインUpdraftPlus~
目次
UpdraftPlusで移行、復元
本記事ではWordPressの移行と復元2つの使い方について説明する。
- 移行 無料版のUpdraftPlusを使ったWordPressの移行
- 復元 UpdraftPlusを使ったWordPressの復元
WordPressのサイトを別ドメインへ移行する。無料版のUpdraftPlusは別ドメインへの移行には対応していないためファイルを手動編集している。実際に筆者のサイトを別ドメインへ移行し正しく動作することを確認した。
バックアップしたファイルからWordPressのサイトを復元する。バックアップ後WordPressを初期化して正しく復元できることを確認した。バックアップから復元まで簡単なオペレーションである。しかし無料版ではマルチドメインには対応していないためバックアップしたファイルの管理に注意が必要である。
UpdraftPlusとBackWPup
筆者ははじめBackWPupを使っていたが途中から復元が簡単なUpdraftPlusに乗り換えた。復元時にBackWPupではFTPツールを使うがUpdraftPlusは管理画面からボタンを押すだけである。レビューの評価もUpdraftPlusの方が若干有利であった。個人的には直観的で使いやすいUpdraftPlusをおすすめする。
BackWPup | 有効インストール数:600,000+ |
UpdraftPlus | 有効インストール数:1,000,000+ |
*:有効インストール数は2018年6月に確認した内容である。
サーバーのリソースが枯渇した場合正しくバックアップが行えないことがある。どの程度の規模かは不明だが時間切れでバックアップが完了しない場合はサーバーのリソース不足の疑いがある。レビューの評価を見る限りではそこまで頻繁に起きることでもなさそうだがリソースに制限のあるサーバーを使用してる場合は注意。
UpdraftPlus runs out of time when it’s trying to backup, after I have left it for some time to give it a good chance. What can I do?
This problem is probably caused by your account being starved of resources by your (cheap) web host provider. This is far from ideal; although UpdraftPlus supports resuming backup runs right from the beginning to avoid everything having to be done at once, it has its limits. The best thing is to choose a more reputable web host. Failing this, try going into the “Expert settings” and reducing the size at which zip files are split. UpdraftPlus is known to successfully backup websites that run into the multiple-gigabytes on web servers that are not resource-starved.
移行と復元で使用するツール
筆者はWindows環境を利用しているのでご了承ください。ツールは代替出来るものがあればそちらでもかまいません。
Googleドライブ | バックアップ先として使用。UpdraftPlusでは他にも対応ストレージがある。 |
サクラエディタ | ファイル編集で使用。置換機能のあるテキストエディタがあればよい。 |
Google Chrome | 今回クロームを使用。他ブラウザで体裁等に違いがある可能性がある。 |
7-Zip | gz形式の解凍と圧縮で使用。gz形式に対応したツールであれば何でもよい。 |
インストールと初期設定
バックアップに必要なプラグインを設定する。
UpdraftPlusのインストール
プラグインの追加からUpdraftPlusをインストールする。WordPressのサイドバーのプラグイン>新規追加でプラグインの追加画面を表示する。キーワードにUpdraftPlusを入力してUpdraftPlus WordPress Backup Pluginをインストールして有効にする。
UpdraftPlusの設定
サイドバーの設定>UpdraftPlus Backupを選択してUpdraftPlus Backup/Restore画面を表示する。設定タブを選択し初期設定する。ここではバックアップ先にGoogleドライブを使用する。
- バックアップスケジュールの設定
- バックアップ先の設定
- バックアップ対象の設定
バックアップスケジュールの設定
バックアップスケジュールが手動になっていることを確認する。デフォルトは手動になっている。
バックアップ先の設定
Google DriveのアイコンをクリックしてGoogle ドライブの設定項目を開く。「あなたは(下の[変更を保存]をクリックして)、設定を保存した後に、一度ここに戻って来て、Google Driveの認証を完了するには、このリンクをクリックしてください。」のリンクをクリックしてGoogle Driveをバックアップ先として設定する。
リンクをクリックするとアカウントの選択が表示される。バックアップ先に使用するアカウントを選択する。
内容を確認し許可ボタンをクリックする。
Complete setupをクリックして設定を完了する。
バックアップ対象の設定
バックアップするファイルの項目すべてにチェックが入っていることを確認する。デフォルトですべてチェックが入っている。
設定を保存
ページの下にある変更の保存ボタンをクリックし設定を保存する。
無料版のUpdraftPlusを使ったWordPressの移行
UpdraftPlusを使ってWordPressを別ドメインに移行する。無料版の制限で別ドメインへは移行できないため手動でバックアップファイルを編集する。ここでは移行に必要な最低限の機能だけを使っている。手順はインストールと初期設定が前提となる。
- バックアップファイルの作成
- バックアップファイルの編集
- WordPressの移行
- 移行先の確認
1. バックアップファイルの作成
UpdraftPlusを使ってWordPressサイト全体をバックアップする。
1.1 移行元サイトのバックアップ
現在の状態タブの今すぐバックアップ。
UpdraftPlus Backup/Restore画面のBackup/Restoreタブを選択。今すぐバックアップボタンをクリックする。
上の三つの項目にチェックが入っていることを確認し今すぐバックアップボタンをクリックする。チェックはデフォルトで入っている。
1.2 バックアップファイルの確認
関連付けしたGoogle Driveにログインしてバックアップファイルを確認する。マイドライブの下にUpdraftPlusフォルダが作成されている。複数のバックアップファイルがある場合は日付で確認。一回のバックアップで5つのファイルが作成される。
2. バックアップファイルの編集
無料版では移行機能がないため手動でバックアップファイルを移行先サイトのURLに書き換える。
2.1 バックアップデータのダウンロード
先ほどバックアップした移行元のデータをダウンロード。バックアップした5ファイルを選択し右クリックしダウンロードを選択。5つのファイルはひとつのzipファイルにアーカイブされローカルにダウンロードされる。
2.2 ダウンロードしたデータを解凍
Google Driveからダウンロードしたファイルを解凍。zipファイル4つとgzファイル1つが展開される。例では「drive-download-20180618T131008Z-001.zip」が対象ファイル。
2.3 データベース資産を解凍
編集の必要があるデータベースファイルを解凍する。ファイル名の末尾に「db」が付いたGZファイルが対象。Windowsでは標準でGZファイルを解凍できないため7-Zipを使用した。例では「backup_2018-06-18-2200_BLOG_573ef189ddd3-db.gz」が対象ファイル。
2.4 URLを書き換える
データベースファイルを編集する。移行元のドメインから移行先のドメインにデータベースの内容を書き換える。置き換えにはサクラエディタを使用。移行元ドメインの「https://zerokara-blog.com」から移行先ドメインの「https://test.funai.com」に置き換える。すべて置換したら保存して終了。置き換えるURLの場所については後述する。例では「backup_2018-06-18-2200_BLOG_573ef189ddd3-db」が対象ファイル。
データベースの情報が記録されたファイルの編集について問題があるとご指摘があり修正しました。
修正前:変更後URLで一括置換
↓
変更後:特定の場所のURL二か所を置換
移行元ドメイン | https://zerokara-blog.com |
移行先ドメイン | https://test.funai.com |
データベースファイルにはSQLと呼ばれるデータベース操作言語でワードプレスの情報が記録されている。SQLはプレーンテキスト(人が見てわかる形式)で記録されているため今回のようにテキストエディターでの編集が行える。
置換する場所について
筆者の環境でURLの置換個所を確認したところ3か所見つかった。
基本的には(1)と(2)で説明する二か所のURLを変更。(3)で説明するGUID部分のURLを変更する必要はない。これ以外にURLが記載されていたら別途確認が必要となる。
(1) wp_options->option_value(option_idがsiteurl)
siteurlで検索すると以下の例のようなコードが見つかる。
URLの部分を移行先に変更する。
例)
(1, ‘siteurl’, ‘https://zerokara-blog.com’, ‘yes’),
※URLは自身の移行先URLを指定する。
(2) wp_options->option_value(option_idがhome)
homeで検索すると以下の例のようなコードが見つかる。
URLの部分を移行先に変更する。
例)
(2, ‘home’, ‘https://zerokara-blog.com’, ‘yes’),
※URLは自身の移行先URLを指定する。
(3) wp_posts->guid
移行前のURLで検索すると以下のようなコードが見つかる。
ここに記載されているURLはGUIDと呼ばれる識別子でURLとしての機能はない。
参考URLで確認したところGUIDは移行時に変更しないよう記されているためこの部分のURLは変更しない。
例)
(54, 1, ‘2019-03-09 20:07:45’, ‘2019-03-09 11:07:45’, ‘<!– wp:paragraph –>\n<p>updraftplusのテストを実施します。</p>\n<!– /wp:paragraph –>’, ‘バックアップテスト①’, ”, ‘inherit’, ‘closed’, ‘closed’, ”, ’53-revision-v1′, ”, ”, ‘2019-03-09 20:07:45’, ‘2019-03-09 11:07:45’, ”, 53, ‘https://zerokara-blog.com/2019/03/09/53-revision-v1/’, 0, ‘revision’, ”, 0),
2.5 編集したファイルをgz形式に圧縮
まず編集前のデータベースファイルを削除。7-Zipを使って編集したデータベースファイルをgz形式に圧縮する。圧縮したら解凍したデータベースファイルを削除。これで移行先のドメインに書き換えたデータベースファイルの作成が完了。
3. WordPressの移行
バックアップした資産を移行先のWordPressで復元する。
3.1 別ドメインのWordPressを準備
別のドメインにWordPressを新規にインストール。今回はSSL設定しているため移行先のドメインもSSLを設定。
3.2 UpdraftPlusをインストール
プラグインのUpdraftPlus Backupをインストール。詳細はインストールと初期設定を参照。
3.3 ファイルをアップロード
URLを書き換えたファイルをアップロードする。Backup / Restoreタブを選択。 バックアップファイルをアップロードをクリックするとアップロード項目が表示される。
ファイルを選択ボタンをクリックしてダウンロードして編集したバックアップファイル5つを選択する。
アップロードが終わるとバックアップ済が1つ追加される。復元ボタンをクリックする。
3.4 バックアップを復元
アップロードしたバックアップの復元ボタンをクリックする。
すべてにチェックを入れ復元ボタンをクリックする。
警告がでるが無視して復元ボタンをクリック。
これで復元は完了。
4. 移行先の確認
移行したWordPressを触るとログイン画面に飛ばされる。ここでは、移行元のIDとパスワードでログインする。
ログインの結果
ログインすると移行元の内容でWordPressが開く。
サイトを開こうとして「無効なURLです。プログラム設定の反映待ちである可能性があります。しばらく時間をおいて再度アクセスをお試しください」と表示される場合はブラウザのキャッシュを一度削除して再度確認。
お疲れさまでした。これで別ドメインへの移行は完了です。
UpdraftPlusを使ったWordPressの復元
UpdraftPlusを使ってWordPressの復元を実験する。バックアップ後にトラブルが起きたと想定しWordPressを初期化する。バックアップしたデータで正しく復元できることを確認する。手順はインストールと初期設定が前提となる。
- Google Driveへバックアップする
- WordPressの初期化
- UpdraftPlusのインストール
- バックアップファイルのスキャン
- バックアップファイルからの復元
- 復元後の確認
1. GoogleDriveへバックアップする
UpdraftPlus Backup/Restore画面のBackup/Restoreタブを選択。今すぐバックアップボタンをクリックする。
上の三つの項目にチェックが入っていることを確認し今すぐバックアップボタンをクリックする。チェックはデフォルトで入っている。
関連付けしたGoogle Driveにログインしてバックアップファイルを確認する。マイドライブの下にUpdraftPlusフォルダが作成されている。複数のバックアップファイルがある場合は日付で確認。一回のバックアップで5つのファイルが作成される。
2. WordPressの初期化
WordPressにトラブルが発生したと想定してWordPressを初期化(アンインストール後再度インストール)する。正しく復元できない可能性もあるため実験する場合は消えてもいいWordPressを使用する。
3. UpdraftPlusのインストール
同じようにUpdraftPlusをインストールしバックアップファイルの保存先をGoogleDriveに設定する。詳細はインストールと初期設定を参照。
4. バックアップファイルのスキャン
GoogleDriveに保存されているバックアップファイルをスキャンする。「リモートストレージを再スキャン」をクリック。
Google Driveに保存されているバックアップファイルが読み込まれる。無料版はマルチサイトに対応していないため他のドメインのファイルも表示されてしまう。複数混ざってしまった場合は日付で判断する。
今回バックアップファイルが混ざってしまったが保存先を変更すればこのような問題は発生しない。
無料版UpdraftPlusを使ってマルチサイトを運用する場合は保存先をドメインごとに設定することでバックアップファイルを管理することができる。Google Driveの場合はドメイン分のGoogleアカウントを作ることで対応できる。
5. バックアップファイルからの復元
対象のファイルを日付で確認し復元ボタンをクリックする。
すべてにチェックを入れて復元ボタンをクリックする。
Google Driveからの復元は時間がかかるので焦らず待つ。警告がでるが無視して続行。復元ボタンをクリックする。
ログの最後にRestore successful!が表示され復元が完了する。
6. 復元後の確認
復元前のIDとパスワードでWordPressにログイン。
復元したサイトも問題なく動作している。
お疲れ様でした。これで復元は完了です。
バックアップ計画
実験では手動のタイミングでバックアップしていたが、実際は計画的に運用する。筆者は以下のようなバックアッププランを立てた。更新頻度やサイト規模で違いがあると思うが参考にしていただきたい。
以下の3つのタイミングでバックアップする計画を立てた。特にWordPressの更新時は注意したいタイミングである。
- 自動での定期バックアップ
- WordPress、テーマ、プラグインの更新時の手動バックアップ
- 任意タイミングでの手動バックアップ
自動での定期バックアップ
UpdraftPlusの機能を使って定期バックアップする。
手動バックアップを忘れてしまった場合を想定しているので2週間ごとのバックアップとした。更新頻度が多い場合はもう少し短い期間で設定した方がよい。
更新時の手動バックアップ
実際に体験してはいないがWorPressの更新時に問題が発生することがあるようなので更新前に手動でバックアップする。プラグインのアップデートで問題が発生することもあるようなので心配ならその都度手動バックアップを実施する。
任意での手動バックアップ
Googleドライブに保存したバックアップ資産を安全のためローカルにダウンロードしておく。Googleドライブにアクセスできなくなった場合の保険である。
Googleドライブでバックアップした5つのファイルをローカルにダウンロードする。手動で手間がかかるので3ヵ月に1回くらいで運用する計画である。
まとめ
WordPressのバックアップが正しく取れているか?もし資産が壊れたら本当に復旧できるのか?いろいろ不安はあったが実際に試してみることで問題ないことが確認できた。バックアップデータをローカルとクラウドの両方に保存しておけば更に安心できるだろう。
手間はかかるが無料版のUpdraftPlusでも十分移行ができることが確認できた。ただしマルチサイトには対応していないようなので注意が必要。今回も移行前と移行後の資産が混ざってしまい更新時間でどの資産か判別する必要があった。保存先のディレクトリーを無料版では変更できない制限が悩ましいところ。しかし、ドメインごとに保存先を変えることでドメインごとにバックアップファイルを管理できる。Google DriveであればドメインごとにGoogle Driveを準備することで解決できる。
- 無料版UpdraftPlusで問題なくバックアップと復元ができた
- 無料版UpdraftPlusでもファイル編集が必要であるが移行できた
- マルチサイトで無料版UpdraftPlusを使う場合はドメインごとに保存先を準備
万が一に備えサイトは必ずバックアップしましょう!!
おすすめのプラグインはこちらをご覧ください。
[…] […]
[…] […]
[…] […]
[…] ゼロからブログ UpdraftPlusを使ってWordPressの移行と復元を実験~プラグインの使い方と手順を紹介~ […]
「無料版のUpdraftPlusを使ったWordPressの移行」の「2.4 URLを書き換える」
で移行元ドメインから移行先ドメインへ置換するのは、テーブル「wp-options」内にある「siteurl」と「home」のみにしないといけないかと思います。
データベースは配列やオブジェクトに文字列長さを記録していますので、
それも一緒に変更しないと、バグが発生する可能性があります。
他の箇所のドメイン置換は、インポート後にプラグイン「better search replace」等を用いて実施してください。
teryboさま
コメントありがとうございます。
URLの移行について問題があり、ご迷惑をおかけし申し訳ありませんでした。
記事の問題個所は早急に修正いたします。
(1) 移行先ドメインの変更について
実際にURLを置換している場所を確認したところ以下の三か所でした。
①wp_options->option_value(option_idがsiteurl)
参考サイトにある通りsiteurlのデータ変更は必要なのでこの部分は問題ありません。
②wp_options->option_value(option_idがhome)
homeのデータも変更が必要なので問題ありません。
③wp_posts->guid
参考サイトを見るとGUIDはURL変更時にも変更しない旨が記されています。
一括置換で変換していましたがこの部分は変更してはいけませんでした。
この部分については記事内容を見直し修正いたします。
GUIDはURLとしての機能はなく一意の識別子として使っているだけですね。
(2) バグについて
私の経験上以下のコメントが少し気になりました。
個人的な見解ですがコメントさせていただきます。
私は20年近くデータベースを使ったシステムを開発してきましたが
文字列の長さを別に記録し一緒に変更しないとバグが発生するような
設計でシステムを作ったことはありません。
ただし、文字列の最大長は意識して設計します。
基本的には可変長文字列の場合はデータベースを
扱うアプリケーション側で動的に長さを取得します。
コードなどの固定長文字列であれば長さを別に管理することが
ありますがURLなどの可変長文字列の長さを別に管理することは
普通しません。
今回の場合インサート文で置換したフィールドのタイプは
option_valueがlongtextでguidがvarchar(255)です。
これらのタイプの場合入力した文字列長を別を管理することは
基本的にありません。
文字列長の長さを別に記録しバグが発生する可能性はゼロでは
ないと思いますが可能性は低いと思います。
参考URL:
データベース構造 – WordPress Codex 日本語版
サイト URL の変更 – WordPress Codex 日本語版
ご指摘のおかげで内容を見直すことができました。
本当にありがとうございます。