WordPressをデータベースごと別のサーバーに引っ越しする方法

wordpress_server_transfer

先日知人が運営していたWordPressサイトを譲り受けることになったので、サイトをデータベースごと私が契約しているレンタルサーバーに引っ越しすることになりました。今回はエックスサーバーからエックスサーバーへの移転ですが、別のサーバーに移転する方法も含めて備忘録として残しておこうと思います。

説明や画像はエックスサーバーでのものになりますが、他のサーバーでも基本的にやることは同じです。例えば「バックアップファイルを用意する」という行為自体はどのサーバーでも同じですが、そのために使うサーバーの管理画面や操作方法が異なる場合がありますのでご留意下さい。

目次

バックアップデータの作成

WordPressサイトのサーバー引っ越しを行うためにはまずWordPressサイトファイルのバックアップとデータベースのバックアップの両方を用意する必要があります。片方だけではサイトは復元できませんので必ず両方のバックアップを用意して下さい。

WordPressのサイトデータ、データベースのバックアップ方法に関してはWordPress(ワードプレス)のバックアップ方法をご覧ください。

事前準備

サイトの移転は一歩間違えば大切なサイトデータを喪失しかねないため慎重を要します。もちろんバックアップを取っておくのは大前提ですが、慣れていない方の場合そのバックアップ自体がきちんと取れていなかった、ということもありえます。

そのため引っ越し元サーバーでサイトのデータを削除するのはギリギリまで後回しにして先にできることから手をつけましょう。この記事の「事前準備」の項までは元のサーバーに全てのデータを残したまま行うことができます。

データベースの作成

エックスサーバーをお使いの方はWordPressサイトを作成する際「自動インストール」を利用した方も多いと思いますが、今回は作成済みのサイトをサーバーに設置するため手動でのインストールとなります。まずは引越し先のサーバーにサイトのデータを格納するためのデータベースを作成しましょう。

wordpress_server_transfer1

エックスサーバーのサーバーパネルにログインし、「MySQL設定」をクリックします。

wordpress_server_transfer2

「MySQLの追加」をクリックすると上記の画面となりますので任意のデータベース名を入力、文字コードは「UTF-8」を選択して「MySQLの追加(確認)」をクリックします。

wordpress_server_transfer3

「MySQLデータベースの追加」(確定)をクリック。

wordpress_server_transfer4

続いて「MySQLの一覧」の項で先ほど作成したデータベースにMySQLユーザを追加します。

wordpress_server_transfer5

同一ページ下部にMySQLホスト名などの情報が記載されています。後ほど使いますのでメモしておきましょう。

データベースのインポート

wordpress_server_transfer6

サーバーパネルに戻り「phpmyadmin(MySQL5.○)」をクリック。phpmyadminにログインします。

※この記事執筆中にちょうどエックスサーバーではMySQL5.0からMySQL5.5への移行が開始されたため現在は新たにMySQL5.0でデータベースを作成することはできなくなっています。この記事では私の都合上MySQL5.0でデータベースの作成、引っ越しを行っております。ご了承下さい。

wordpress_server_transfer7

データベースの一覧から先ほど作成したデータベースを選択します。

wordpress_server_transfer8

データベースは空になっているはずですので引っ越しするサイトのデータベースを格納します。「インポート」の項を開き「ファイルを選択」、右下の「実行する」ボタンをクリックします。

wordpress_server_transfer9

上記の画面が表示されればデータベースの移行は完了です。

wp-config.phpの書き変え

WordPressサイトのファイル「wp-config.php」にはデータベース名やMySQLのホスト名などの情報が記載されています。サーバーを引っ越しするとこれらの情報が合致しなくなるため、そのままでは「データベース接続確立エラー」となりサイトが正しく表示されません。

「wp-config.php」はバックアップしたサイトのデータファイルの「public_html」直下にあります。下記の部分を探して引越し先のサーバーやデータベースのものに書き換えましょう。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'example_wp');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'example_user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '***********');

/** MySQL のホスト名 */
define('DB_HOST', 'mysql○○.xserver.jp');

「wp-config.php」はWindowsにデフォルトでインストールされているメモ帳で編集すると正しく動作しなくなります。TeraPadなど無料のものでかまいませんので必ず他のテキストエディタを使用しましょう。

サイトの引っ越し

いよいよサイトの引っ越しを行います。ここからは引越し元のサーバーからサイトを削除して新しいサーバーに移し替える作業です。

バックアップファイルがきちんととれていない場合など最悪の場合サイトを復旧できなくなる場合もありますので、今一度バックアップデータがきちんととれているか確認しておきましょう。くどいようですがバックアップはデータベースのバックアップとサイトファイルのバックアップの2つが必要です。

引っ越し元サーバーのドメイン設定削除

wordpress_server_transfer10

まずは引越し元のサーバーでのドメイン設定を解除します。サーバーパネルを開いて「ドメイン設定」をクリックします。

wordpress_server_transfer11

今回引っ越しするドメインを選択して「削除」をクリックします。

wordpress_server_transfer12

「ドメインの削除(確定)」をクリック。この時点で引越し元のサーバーからサイトのファイルは全て消去されます(データベースは残ります)

引越し先サーバーへのドメイン設定

wordpress_server_transfer13

今度は引越し先のサーバーにドメインを設定します。サーバーパネルから「ドメイン設定」をクリック。

wordpress_server_transfer14

引っ越しするサイトのドメインを入力して「ドメインの追加(確認)」をクリック。そのまま画面に従ってドメインの追加を完了させます。

動作確認URLの設定

場合によって時間の長短はありますがサイトの引っ越しを行うとしばらくサイトが表示されないという問題が発生します。しかし引っ越したサイトが正常に動作しているかどうかは一刻も早く確認したいところ。

エックスサーバーではこういった場合のために動作確認URLというものが設定できるようになっています。ただ、私の場合はエックスサーバーからエックスサーバーへの移転だったこともあってか、動作確認URLでも本来のURLと大差ない時間サイトが表示されずあまり意味を為しませんでした。

一応、動作確認URLの設定方法を記載しておきます。

wordpress_server_transfer15

サーバーパネルから「動作確認URL」をクリック。

wordpress_server_transfer16

動作確認URLを設定するサイトを選択して「動作確認URL設定の追加(確定)」をクリックすればOKです。

WordPressデータのアップロード

それではいよいよWordPressサイトのファイルをアップロードします。必ずプラグインファイルは削除してからサイトファイルをアップロードして下さい。プラグインはサイト復旧後、WordPress管理画面から再びインストールします。

wordpress_server_transfer17

プラグインファイルは/public_html/wp-content/plugins/に格納されています。

wordpress_server_transfer18

ファイルをアップロードする前にアップロード先にあるindex.htmlを削除します。WordPressではindex.htmlが優先して表示されるため、これが残っているといつまでたっても移転したサイトが表示されません。

wordpress_server_transfer19

サイトファイルの準備ができたらFTPソフトなどを使ってサーバーにファイルをアップロードします。この時アップロードする場所によってトップページのドメインが変わります。

http://example.com/ でサイトを表示する場合はpublic_html直下に、http://wp.example.com/ でサイトを表示する場合は/public_html/wp/にファイルをアップロードして下さい。

FFFTPでファイルが正常にアップロードできない場合

FFFTPで大量のファイルをアップロードすると何回やっても途中でエラーが起きてしまう場合があります。その場合は別のFTPソフトを使用するか、ファイルを小分けにしてアップロードしましょう。

一応、暗号化なしで接続することでFFFTPでファイルをまとめてアップロードすることは可能なので方法は載せておきますが、推奨はできません。どうしてもこの方法でやる場合はアップロード後、必ず暗号化通信に戻すのを忘れないで下さい。

wordpress_server_transfer25

FFFTPを立ち上げ「設定変更」をクリック。

wordpress_server_transfer26

「暗号化なしで接続を許可」にチェックを入れ「OK」をクリックします。

サーバー移転に伴うプロパゲーション

エックスサーバーどうしでのサイト引越しは以上で完了ですが、移転後サイトに訪問すると下記のようなページが、動作確認URLに至っては真っ白なページが表示されます。

wordpress_server_transfer20

サーバー周りにそれほど詳しくない方は青ざめてしまうかもしれませんが、この段階ではとりあえず焦る必要はありません。

サイトを別のサーバーに移転した場合、特に今回のように同一サーバー間で移転した場合はしばらくの間プロパゲーションというものが発生し、サイトが表示されません。これはDNSサーバーがドメインに関する新しい情報を読み込むまでの間、古いデータを見に行ってしまうためです。

今回の私の場合サイトが表示されるまで1日以上かかりました。

仮にサイトの移転に何らかの失敗があったとしてもサイトが表示されない以上確認することはできません(方法が全くないわけではありませんがここでは割愛します)。胃がキリキリ痛む気持ちはわかりますが時間の経過を待ちましょう。

1日~2日ほど待っても画面が真っ白なままの場合は下記の記事をご参照下さい。

WordPressサイトが真っ白になって何も表示されない時の対処法

ネームサーバーの変更

今回はエックスサーバーからエックスサーバーへの引っ越しでしたが、ロリポップからエックスサーバーへの引っ越しなどの場合、ネームサーバーの変更が必要となります。この記事では「お名前.com」の設定画面での説明とさせていただきます。

wordpress_server_transfer21

ドメインNaviにログインし「ドメイン設定」を選択します。

wordpress_server_transfer22

ページ下部の「ネームサーバーの設定」の項にある「ネームサーバーの変更」をクリック。

wordpress_server_transfer23

引っ越しするサイトのドメインを選択。

wordpress_server_transfer24

ページ下部に上記画像の場所があるのでネームサーバー情報を入力して「確認画面へ進む」から設定を完了します。

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。