【サポート事例】WordPressでプラグインを使わずにサイトを移行する方法

今回、WordPressのサイトをプラグインを使わずに移行したので、その手順を備忘として記事にします。

通常はバックアップファイルからの復元で行える作業ですが、もし、なんらかの事情があってそれができない場合に、参考にしていただければと思います。

手順は、自分でXserverのコントロールパネルにログインができて、各メニューを操作する知識があれば行える前提です。

今回の移行背景

お客様からの依頼で、他の業者が管理しているドメインを移管して、そこで管理されているサイトも同様にお客様のサーバー(Xserver)で公開することになりました。

通常は現行のWordPressにログインして、「All-in-One WP Migration」や「BackWPup」などのプラグインを使って、元のサイトからバックアップを取得すれば、カンタンに移行ができます。

しかし、業者の方からはログイン情報やFTP情報の共有はできないと言われてしまい、この方法は使えませんでした。

提供してもらえたのは、サイトデータとsqlファイル(データベース)だけで、ここからサイトを復元する必要がありました。

復元手順

1.復元先となるドメインを登録する

Xserverではドメインを登録することで、ドメインのディレクトリが作成されます。

サイトのデータはこのディレクトリに入れて復元作業を行います。

ドメイン登録方法は割愛しますが、手順を知りたい人はXserverのヘルプをご参照ください。

※ただし、今回は現行サイトもXserverで公開されていたため、Xserverに現行サーバーからドメインの削除をしてもらう必要がありました。
そのあたりの事情は以下の記事で詳しく解説しています。

2.ファイルをアップロード

FTPソフトやXserverのファイルマネージャーなどを使って、登録したドメインのディレクトリ直下に旧サイトのファイルをアップロードします。

3.データベースの作成

Xserverで新しい「MySQLデータベース」と「MySQLユーザ」を作成します。

これは旧サイトのデータベースを受け入れる受け皿となります。

(ア)Xserverのコントロールパネルにログインし、「データベース」-「MySQL設定」を開きます。

MySQL設定メニュー

(イ)「MySQLユーザ追加」タブをクリックし、ユーザを追加します。

  • 「MySQLユーザID」⋯半角英数字(例: sampleusr)
  • 「パスワード」⋯半角英数字
MySQL設定のMySQLユーザ追加画面

(ウ)「MySQL追加」タブをクリックし、データベース名を追加します。

  • 「MySQLデータベース名」⋯半角英数字(例: sampledb)
MySQL設定のMySQL追加画面

(エ)「MySQL一覧」タブをクリックし、作成したデータベースにユーザを追加します。

追加したデータベースの「アクセス権未所有」をクリックして、追加したユーザーを選択し、[追加]をクリックします。

※「アクセス権所有ユーザ」に追加されたら成功です。

MySQL設定のMySQL一覧画面

4.データベースの復元

作成したデータベースに旧サイトのsqlファイル(データベース)を復元します。

(ア)Xserverのコントロールパネルから「データベース」-「phpmyadmin(MySQL5.7)」を開きます。

phpmyadmin(MySQL5.7)メニュー

(イ)ユーザ名とパスワードを求められるので、手順3で作成したユーザ情報を入力します。

(ウ)左のツリーからデータベース名をクリックし、「インポート」タブをクリックします。

※画面上部の「サーバ」に記載されている情報(mysql◯◯◯.xserver.jp)は後で必要となるのでメモに控えておいてください。

phpmyadmin(MySQL5.7)内の「インポート」メニュー

(エ)「インポートするファイル」でsqlファイルを選択し、画面下部の[インポート]をクリックします。

インポート設定画面

phpmyadminの画面はあとで使うのでそのまま開いておいてください。

5.WordPressのDB情報を修正

手順2でアップロードした中にある「wp-config.php」のDB情報を自分で作成したものに書き換えます。

(ア)FTPソフトやファイルマネージャーから「wp-config.php」の編集画面を開きます。

(イ)以下の項目を手順3で作成した情報に書き換えます。

define('DB_NAME', '新しいデータベース名');

define('DB_USER', '新しいユーザー名');

define('DB_PASSWORD', '新しいパスワード');

define('DB_HOST', 'mysql◯◯◯.xserver.jp'); //手順4の(ウ)で確認した情報
wp-config.phpの該当箇所

6.DB内のURLを置換

復元したデータベースの中には以前のサイトのURLが使われているため、そのままでは正しいサイトを開くことができません。

そのため、データベース内のURL情報を新しいサイトのURLに置き換えます。

方法としては、以下の方法があります。

  • ① プラグインを使う方法
  • ② SQLで直接置換

①のプラグインを使う場合は、有名なのが「Search Replace DB」です。

無料で利用が可能ですが、サイトが英語なのと、ダウンロードにフォーム入力が必要です。

私は今回②の方法で行いました。

上級者向けですが、今はChatGPTがあるのでこちらの方法でも簡単に行うことができました。

(ア)開いたままの「phpmyadmin(MySQL5.7)」を表示します。
※閉じた場合は再度開き直してください。

(イ)データベースを選択した状態で画面上部の「SQL」タブをクリックします。

(ウ)以下のSQL文を貼り付けます。
※「旧URL」と「新URL」の部分はご自分の環境にあわせて修正してください。

UPDATE wp_options
SET option_value = REPLACE(option_value, '旧URL', '新URL')
WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts
SET guid = REPLACE(guid, '旧URL', '新URL');

UPDATE wp_posts
SET post_content = REPLACE(post_content, '旧URL', '新URL');

UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, '旧URL', '新URL');

(エ)右下の[実行]をクリックします。

SQLのURL置き換えクエリ

7.サイトの動作確認

ここまでの作業で移行元と同じサイトが開けるようになっているはずです。

サイトにアクセスして動作を確認します。

画像が表示されていなかったり、リンクが切れていたりするので、一通りの画面を開いて確認してください。

注意

データベース外のURLは置換できない

phpMyAdminを通じて行う置換は、データベース内のデータ(テキストや設定)に対してのみ有効です。

例えば、 home.phpなどのテンプレートファイルに直接書かれているURLは、データベースではなくファイル内に存在しているため置換の対象外となります。

もし、サイトの動作確認中に直っていないリンクを見つけた場合は、「Better Search Replace」というプラグインを使って修正してみてください。

まとめ

今回は、元のサイトにログインできない、プラグインでのバックアップを使えないという制限があったため、やや手間のかかる方法となりました。

ただ、WordPressはファイルとDBさえあれば復元可能だということがわかり、ChatGPTもあるので落ち着いて作業すれば対応できると感じました。

同じようなケースで困っている方の参考になれば幸いです。

プラグイン無しでサイト移行ができるとはいっても、FTPやレンタルサーバーの管理画面を触り慣れていない方には少しハードルが高いかもしれません。

自分で調べながら設定を進めるのも成長につながる大事なことですが、お客様のサイトなど失敗が許されないときには、

知っている人や詳しい人に聞きながら進めるのが間違いないと思います!

もし、安全に短時間で問題を解決したいと感じられたら、弊社のITサポートのご利用をご検討ください。

お客様の声

今なら通常5500円(税込)のところ1100円(税込)でサポートがご利用いただけます。
※割引料金でご利用いただく場合は、バナーをクリックして表示されるサポート申し込みページからお申し込みください。