UpdraftPlus は無料でWordPressサイトのバックアップが作成でき、復元やサイト移転にも使える素晴らしいWordPressプラグインです。
UpdraftPlus を使ってサイト移転(サイトの引っ越し=まるごと同じ状態のサイトを別URLに複製すること)の方法を調べた所、日本語での情報はDB置換の方法のアップデートが必要で、公式の情報は有料のプレミアムかアドオンの購入が必要でした。
必要なのはDB置換の箇所だけでしたので、一定の操作・作業ができる前提となりますが、UpdraftPlusを使って正しくサイト移転する方法をご紹介します。
目次
1箇所を除き、参考サイトの方法で実施
UpdraftPlus で WordPress サイトを超簡単に移行する方法
こちらの参考サイトがプラグインのインストールからバックアップ方法、サイト復元方法まで画像入りでとても詳しく説明してくれています。基本的にはこちらの内容に沿って実施していきます。
しかし、一点だけ注意が必要です。「データベースファイルを一部加工」の箇所はDB内のURL文字列を移行元から移行先へと変換するプロセスですが、 wp_options や wp_postmeta テーブル内にはシリアライズされたデータが保存されている場合があり、シリアライズされたデータがDB内にあると完全にURLの変換ができずに旧サイトのURLが残ってしまう可能性があります。
WordPress 公式にもこのように記載があります。
URL を変更するためにデータベース全体の検索と置換を行うと、いくつかのテーマやウィジェットには URL の長さを示す値を保存しているものがあるため、データのシリアライゼーションに問題が生じる可能性があります。これが変更されると、壊れてしまいます。
WordPress の移行 | WordPress.org 日本語
よって、この方法で進めた場合はシリアライズされた部分は置換されないため、ウィジェットやプラグインで不具合が発生したり、投稿や固定ページ等で設定されたページ内リンクが移行元URLのまま、といったような問題が発生してしまう可能性があります。
データベースに保存されたシリアライズされたデータも一括置換する方法
上記のWordPress公式には、3つの方法が紹介されています。
1. ダッシュボードにアクセスできる場合は、 Velvet Blues Update URLs または Better Search Replace プラグインを使用してください。
2. ホスティングプロバイダー (またはあなた) が WP-CLI をインストールしている場合は、WP-CLI の検索置換 を使用してください。
3. Search and Replace for WordPress Databases Script を使用して、古いドメイン上のすべてのインスタンスやパスを新しいものに安全に変更することができます。(** データベース管理に慣れている場合のみ、このオプションを使用してください ** )
WordPress の移行 | WordPress.org 日本語
まず1ですが、サイト引っ越ししていてデータベース全体のURLを置き換える必要があるため古いURLのままです。よってログインできないためダッシュボードにアクセスできず却下です。
次に2のWP-CLIですが、Windowsならコマンドプロンプト、Macならターミナルを使って、いわゆる「黒い画面」を操作するCUI作業です。サーバーにSSHでアクセスし、search-replace コマンドを実施するのですが、この操作は経験していない人には敷居がかなり高いと思います。よって却下。
wp search-replace | WP-CLI Command | WordPress Developer Resources
そして3です。この方法はデータベースを一括置換するスクリプトを利用することで一括置換を実施します。ウェブサーバー上にアップし、ブラウザからアクセスできる手軽さがあります。
「データベース管理に慣れている場合のみ、このオプションを使用してください」という表現で選択肢から外れてしまいそうですが、確かにDBを直接操作するためバックアップや万が一には復元という作業が必要ですが、ブラウザからアクセスできるため2のWP-CLIよりこちらの方がはるかに敷居が低く簡単かと思います。これにより、データベースに保存されたシリアライズされたデータも含めて変換できるため、今回はこのSearch-Replace DBの方法を採用します。
上記のWordPress公式のページ内にかかれている Search-Replace DBのリンクだとダウンロードが有料(以前は無料だった記憶が……)ですが(寄付制となっており無料も選択できます)、 Githubに公開されている方は普通にダウンロードできるので、そちらをお勧めします。
UpdraftPlusで全データをインポート後に一括置換を実施
移行元からエクスポートしたウェブとDBの各ファイルを、移行先のUpdraftPlusの復元機能を使ってアップロードします。この時アップロードするDBファイルは一括置換前のファイルで構いません。復元後にSearch-Replace DBを使って一括置換します。
FTP等を使ってサーバーにSearch-Replace DBをアップロード
ダウンロードしたZipファイルを解凍し、フォルダ一式をサーバーにアップロードします。このときのアップロード先は対象のWordPressの wp-config.php ファイルと同じディレクトリです。
アップロード後、アップした先のURLを直打ちしブラウザでアクセスしてみると、一括置換ツールのスクリプト画面が表示されます。
必要な情報を入力し接続成功後、一括置換を実施
まずは正しくデータベースにアクセスできるか確認しましょう。Database Detals より以下の情報を入力します。それぞれに対応する wp-config.php の箇所です。
- database name: WordPress のためのデータベース名
- username: MySQL データベースのユーザー名
- pass: MySQL データベースのパスワード
- host: MySQL のホスト名
- port: MySQL のホスト名にポートが設定されている場合はポート番号を入力(任意)
単純に wp-config.php にかかれている内容を入力すれば問題有りません。入力できたら「Test connection」をクリックし接続テストします。
接続成功後、「replace」に移行元の古いURLを、「with」に移行先の新しいURLを入力します。ドメイン名のメールアドレスを利用している場合があるため、httpプロトコルから入力すると安全です。
例
- replace: https://old.highfivecreate.com
- with: https://new.highfivecreate.com
URLをコピーすると末尾に /
(スラッシュ)が含まれますが、DB内にはスラッシュが含まれないケースもある可能性を考え、末尾のスラッシュは含めない形が望ましいです。
例
- よくない例: https://old.highfivecreate.com/
- いい例: https://old.highfivecreate.com
特定のテーブルに限定したい場合を除き、選択されている「all tables」のままで問題有りません。この状態で一度「Do a safe test run」をクリックし、実施前のテストを行います。テスト後、各テーブルの該当した数が表示されます。もしどのテーブルも0だと該当しないため、入力した文字列が間違っている可能性があります。
いくつかのテーブルに該当した数字が表示され、完了したらいよいよ実行します。「Search and Replace」をクリックし、一括置換が実施されます。完了まで待ちましょう。DBサイズが多かったり、PHPのバージョンが古いと完了まで時間がかかります。
エラーが発生する場合は
- 動いているPHPのバージョンが古い
- 利用先のサーバーで許可されていない操作
- ajaxエラー
等の理由で、Search-Replace DBが利用できない場合があります。PHPのバージョンによる場合はバージョンアップによるリスクを鑑みた上でバージョンアップを実施します。またはSearch-Replace DBのバージョンを落とすことでエラー解消となる場合もあります。
各バージョンはGithubに用意されています。
一括置換後はパーマリンクを更新し、Search-Replace DBを削除
無事一括置換が完了後、移行先の新しいURLでWordPressサイト・管理画面にアクセスし表示されるか確認します。
その後、管理画面ログイン後にパーマリンク設定を更新しておきましょう。これをしないと、下層ページが404エラー等になってしまう可能性があります。移行先サーバーでパーマリンクの実行ルールを書き換える必要があるためです。
また、一括置換完了後はサーバーにアップロードした Search-Replace DB を削除しておきましょう。
UpdraftPlusで簡単にサイト引っ越し
以上、UpdraftPlusを利用したサイト引っ越し方法でした。
今回ご紹介の方法であればデータベースに保存されたシリアライズされたデータも変換でき、無料で安心してサイト引っ越しが可能です。
DBを直接変更するため、環境によってやりかたを変える必要があるかもしれません。また、間違った場合のためにDBをバックアップしておくのと、操作を間違えたり不具合が発生した等が発生のときはDBを再度インポートする等復元する必要もあることを念頭にいれておく必要があります。
「有料でもいいので簡単で確実な方法がいい」という場合は、公式が紹介している有料の方法がおすすめです。プレミアム版で$70、サイト移転のアドオンのみだと$49です。
「本番環境で実施する前に確認したい」という場合はテスト環境を用意しテスト実施すると安心です。以下もご参考ください。
コメントを残す