WordPressを使用してサイトを運用している方は多いと思います。ドメインを変更しなくてはいけなくなったり、サブドメインを変更しないといけなくなったり、サーバーを別のものにしなくてはいけなくなったりと理由は様々だと思います。
最近では、サーバーに契約するとWordpressが自動でインストールされていたり、されていなくても簡単にインストールできるサーバーがたくさんあります。ただ、サーバーの引越しやドメインの引越しについては、あまり詳しく掲載しているところは多くないように思います。
Wordpress引越しと検索するとたくさん出てくると思いますが、ここでは、データベースサーバーからデータを抜き出して、そのデータを新しいデータベースサーバーにインポートすることで引越しを行うことについて、記載したいと思います。

こんな方へ

  • WordPressのサイトを引越しする方
  • phpmyadminを使用してmysqlデータを移行したい方
  • WordPressのデータを抜き出して、新サイトへインポートしたい方

まず既存サイトのバックアップを取る

ご自身の契約されているサーバーにまずはログインし、FTPでのログイン方法を問い合わせするか、マニュアルで調査してください。
中には、サーバーの内容を一覧で表示させてくれるページがあり、そこからファイルをダウンロードすることも可能ですが、できればFTPソフトを使用するか、SSHでファイルをダウンロードする方法が便利で安全です。

wp-contentの中身をバックアップする


契約サーバーにログインできたら、基本的にはこのフォルダをダウンロードしてください。

このフォルダの中には、アップロードした画像やファイル、デザインのテーマファイル、プラグインのファイルなどが格納されており、サイトのユーザーにより設定されたファイルが格納されているものです。何年の運用されてきたサイトでは、画像や動画ファイルなどが膨大に格納されている場合があります。FTPソフトなどを使用する場合は、一回でダウンロードするよりは、一つ一つフォルダごとにダウンロードされた方が確実な場合がありますので、きちんとファイルがダウンロードできているか確認の上、すこしづつ行なった方が良い場合があります。

次に、一番階層が上(ルート)においてある

をダウンロードしておいてください。このファイルは、サーバーとの接続情報やサイト全体の設定が記載されているファイルです。

このような記載があると思うので、保管しておいてください。

phpmyadminにログインする

phpmyadminの詳細なログイン方法は、サーバーによって異なるため割愛しますが、必要な情報は、上記の情報になります。
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST。これらを使って、phpmyadminにログインしてください。

必要なデータをエクスポートする

ログインすると、一番左のテーブル名の中に、「DB_NAME」と同じものが存在すると思いますので、そちらを選択した状態で、上の「エクスポート」を選択します。

を選択し、全ての「テーブル」を選択します。

DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加するにチェックします。Import先で、同じテーブル名がある場合はそれをそのまま上書きすることを意味します。
一番したの「実行」をクリックし、.sqlファイルを取得してください。

旧サイトのバックアップは完了です。

wp-contentの中身をすべて保管し、wp-config.phpのファイルを保管、その後、mysql内のサイトのデータを取得し、旧サイトのファイルのバックアップが完了します。これらを使い、新サイトへデータを移行していきます。旧サイトはそのままにし、最後にリダイレクト処理を行う予定です。

新サイトへWordpressをinstallする

新しく契約されたサーバーにWordPressをインストールしてください。セキュリティの安全性を考慮して、新しいPHPのバージョンやmysqlのバージョンを使用されることをおすすめします。Wordpressのインストール方法は、他のサイトでたくさん記載されていると思うのでこちらであえて言及しませんが、おすすめはサーバーの中の管理画面の中にある「簡単インストール」などの付随サービスを使用すると比較的簡単にできます。

新サイトのバックアップをする

空のサイトですが、何か問題が起こった時に対処できるようにできる限りファイルをバックアップしておきます。

wp-contentの中身をバックアップする

旧サイトで行なったものと同じように、wp-contentの中身をご自身のローカルなどに保管しておいてください。

旧サイトのwp-contentの中身を入れる

新サイトのwp-contentに上書きしてください。アップロードソフトを使用する場合は、一つ一つフォルダをアップロードした方が安全な場合がありますので、すべてのファイルがきちんとアップロードされているか確認の上、行なってください。

新サイトへデータをImportする

新サイトのルートフォルダ内にある「wp-config.php」の中に記載されている「DB_NAME, DB_USER, DB_PASSWORD, DB_HOST」を取得しておきます。

phpmyadminにログインし、インポートを選択する

契約サーバーのマニュアルに従い、「DB_USER, DB_PASSWORD, DB_HOST」を使用して、phpmyadminにログインしてください。
その後、左に表示される「DB_NAME」をクリックで選択し、「インポート」を選択してください。
旧サイトのデータベースから取得した、.sqlファイルを設定し「実行」をクリックしてください。
成功すると、左の「DB_NAME」の中にご自身の旧サイトのデータがインポートされますので、確認してください。
失敗する場合は、テーブルをきちんとクリックで選択していないか、他のエラーが表示されると思います。

phpmyadminの中のwp_optionテーブルでURLを変更する

左のテーブルの中に「wp_option」をクリックすると、下記の内容が表示されると思います。

旧サイトのURLが表示されるので、新サイトのデータに書き換えを行なってください。そうしないとサイトの表示はできず、かつ管理画面すらアクセスすることはできません。このURLを使い全てのリンクやリダイレクトが設定されているためです。

wp_config.phpの中の$table_prefixを確認

もし、旧サイトで、テーブル名の変更が行われていた場合、wp-config.phpの中にある

の設定を変更すると動作することがります。こちらはテーブル名の先頭の内容を設定できるものです。デフォルトはwp_ですが、ハッカー対策などで変更されるサイトも存在します。

ここで動作確認

ここまできたら、一度新サイトのURLをブラウザで開いてみてください。きちんと表示されていますか?ところどころ壊れている場合は、「wp-content > them > ご自身が使用されているテーマ」の中に旧サイトのURLが絶対パスで残っている可能性があるか、設定ファイルのパスが間違っている可能性があります。

アクセス解析ソフトの設定

使用しているGoogle Analyticsなどのアクセス解析ソフトが正常に稼働しているか確認してください。

Google site consoleの設定確認

ドメインが変更された場合は、設定が再度必要になりますので、設定を確認してください。

契約ASPへの申請

アフィリエイトなどを行なっている場合は、指定されたドメイン以外では広告を掲載できないので、契約の確認や再申請を行う必要があります。

新サイトの管理画面にログインする

新サイトのURL/wp-admin/などで、ご自身のIDとPassを使用し、ログインしてください。プラグインの動作は適切でしょうか?投稿や更新はできますか?

Search Regexを使ってURLを全置換する

PageやPostに画像をアップロードするとデフォルト設定では、絶対パスで設定されます。phpmyadminを使って、置換することも可能ですが、Wordpressのプラグインの「Search Regex」を使って、パスを変更することができます。

記事内の画像が表示されない場合は、パスがどこを指しているのかをチェックし、全て同じ設定であれば、規則性に従い、全置換をかけてください。このプラグインはデータベースをそのまま書き換えするので、取り消しが難しいので注意です。失敗した場合は、phpmyadminを使ってもう一度.sqlのデータをインストールすることが解消されます。慎重に行なってください。

旧サイトへのアクセスを停止する

新サイトへのアクセスや表示の確認、テスト投稿の確認などが完了したら、旧サイトへのアクセスをまずは停止します。旧サイトの管理画面にログインし、「WP Maintenance Mode」などのプラグインを使い、サイトを公開停止してください。Wordpressのサイト停止の方法は、検索されると比較的容易に見つかります。

.htaccessでリダイレクト設定をする

Googleにインデックスされているページへのアクセスや他サイトからのアクセスを有効に使うために、htaccessを使用しリダイレクトを設定しましょう。旧サイトのルートフォルダに.htaccessを設置し以下のように記入します。

xxxxxxxx.xxxの部分は新サイトのURLです。こちらを行うと、
yyyyy.yyy/記事のURLへアクセスがあった場合、xxxxxxxx.xxx/記事のURLへリダイレクトされるされます。

まとめ

新サイトの稼働が正常に行われることを確認できるまで、旧サイトのデータは削除しないようすることが大切です。新サイトに不具合が起き、旧サイトのデータを使って復旧できなくなると大変になります。一つ一つ確認しながら行うことで大きな事故なく引越しや移行ができると思います。