WordPressサイトのサーバーを移転する方法としては
-
プラグイン
- 「All-in-One WP Migration」
- 「Duplicator」
などが有名ですが、バックアップ用プラグインとして非常に評価が高い「Updraft Plus」の方がそれらよりも楽に、そしてシンプルにサーバー移転ができます。
この記事では「Updraft Plus」を利用した簡単なサーバー移転方法を紹介します。
手順は大きく分けて5つです。
- 旧サーバーでバックアップファイルを作成
- 新サーバーにWordPressをインストール
- hostsファイルを書き換え自分のPCのみ新サーバーを参照、操作できるようにする
- 新サーバーにサイトを復元する
- DNSを新サーバーに切り替える
旧サーバー側の作業手順
-
簡易作業チャート
- 「UpdraftPlusプラグイン」をインストール、有効化する
- 左の設定から「UpdraftPlus Backups」を選択し、バックアップファイルを作成
- 作成したバックアップファイルをダウンロード
Updraft Plusでバックアップファイルを作成、ダウンロード
WordPressの管理画面から「UpdraftPlusプラグイン」を検索、インストール、有効化します。
管理画面左の設定メニューから「UpdraftPlus Backups」を選択し、バックアップファイルを作成します。
画像などが多いサイトの場合、バックアップファイルの作成に時間がかかる可能性があります。
バックアップが完了したら、5つのファイルをPCにダウンロードします。
ここまでで旧サーバー側の作業は終了です。
新サーバー側の作業手順
-
簡易作業チャート
- 新サーバーに独自ドメインを設定
- WordPressを新規インストール
- 新サーバーの「IPアドレス」をチェック
- hostsファイルの書き換えを行い、自分のPCのみ新サーバーにアクセスできるようにする
- 新サーバーのWordPressに「Updraft Plusプラグイン」をインストール
- バックアップファイルを復元
- 適切に復元されているかを確認
- ドメインのDNSを新サーバーに切り替え
独自ドメインの設定とWordPressの新規インストール
新サーバーの管理画面に「移行したいサイトの独自ドメインを登録」します。
この記事ではエックスサーバー
新サーバーに設定した独自ドメインに新規でWordPressをインストールします。有名どころのレンタルサーバーであれば、数クリックで簡単にインストールできる機能がついているはず。
この後「Updraft Plusプラグイン」でサイトの復元を行うと、サイト名、ログインユーザー名、パスワード名などはすべて以前のものに置き換わるため、これらは適当に設定して構いません。
hostsファイルを書き換え、新サーバーにアクセスできるようにする
次に新サーバーにインストールしたWordPressにアクセスします。
しかし、当たり前ですがそのまま「独自ドメイン/wp-login.php」を開くと旧サーバーのログイン画面が表示されてしまいます。
そこで、「パソコンのhostsファイルの書き換え」を行い、自分のパソコンだけ新しいサーバーのサイトを閲覧、操作出来る状態にします。
この作業を行うことで、自分のサイトを閲覧してくれているユーザーに迷惑をかけることなく、自由に新サーバーに引っ越した自分のサイトを編集することが可能になります。
hostsファイルがよくわからない、という人はアプリを利用するといいでしょう。Windows、Macともに簡単に利用できるフリーソフトが存在しています。
-
参考リンク
- Windows:Hosts書き換えの強い味方!「Hosts File Manager」 – beyonds
- Mac:Macでhostsを書き換えるソフトと使い方 HAJIMARU
「hostsファイルの書き換え」には新サーバーの「IPアドレス」情報が必要です。
新サーバーの管理画面から「サーバーのIPアドレス」をチェックしてみましょう。
次に「hostsファイルの書き換え」を行います。
具体例として、独自ドメインが「example.com」、IPアドレスが「aaa.bb.ccc.dd」だとすると以下のような設定になります。
IPアドレス | hostname |
---|---|
aaa.bb.ccc.dd | example.com |
aaa.bb.ccc.dd | www.example.com |
特別な事情がない限り、wwwあり、なしの2パターンを編集するのを忘れないようにしましょう。
新サーバーのWordPressにアクセス、バックアップを復元する
hostsファイルの書き換えをオンにしたら、1分くらい待ちましょう。
続いて「独自ドメイン/wp-login.php」を開き、新サーバーにインストールしたWordPressにアクセスします。
ログイン画面下に「新規インストールしたときの仮のサイト名」が表示されていれば成功です。
新規インストールした際の仮のユーザー名、パスワードを入力してログインします。
試しに、スマホやタブレットなど他の機器で自分のサイトにアクセスしてみると、ちゃんと旧サーバーのサイトが見えているはずなので一応確認しておきましょう。
新しいWordPressにも「Updraft Plusプラグイン」をインストールし、プラグインの設定画面から旧サーバーで作成した「5つのバックアップファイル」をアップロードします。
ここでもファイルのサイズが大きい場合は少し時間がかかるので、気長に待ちましょう。
メニュー右の「復元」を選択。次に5つのファイルすべてにチェックをいれ、もう一度「復元」を実行します。
復元のログが表示され、最後に「Restore Successful」と表示されれば復元作業は完了。
最終確認として、目視でテーマ、画像、プラグインなどがすべて復元されているかを確認します。
サーバー移行がうまくいかないケースの対処法
テーマ、プラグインが移行できていない、または画像が表示されない、という場合、原因は大きく分けて2つ。
- 旧サーバーのバックアップ作業がそもそも完璧でない
- 新サーバーのWordPressディレクトリの「パーミッション」設定が厳しい
前者の場合、作成したZip形式のバックアップファイルを解凍すれば中身をチェックできるので、ちゃんとバックアップできているかはすぐに確認が可能。
後者のケースは、最近話題の高速WordPress環境「Kusanagi」などで起こりえます。
VPS上に構築されたKusanagiのWordPressは初期設定で権限がガチガチに固められており、そのまま今回紹介した方法で移行作業をしても上手くいかないことが多いです。
この場合は、SSH接続やFTPソフトでサーバーに接続し、wp-contentsディレクトリにあるthemesフォルダ、Pluginsフォルダ、Uploadsフォルダ(主に画像など)のパーミッション設定を一度「777」などに変更してから復元作業を行う必要があります。
移行後は必ず「755」など厳しいパーミッション設定に戻すのを忘れずに。
参考:ファイルパーミッションの変更 – WordPress Codex日本語版
詳しい解説は省きますが、パーミッションの設定もわからないレベルの人がVPSのようなRoot権限付きサーバーを利用するのは危険すぎるので諦めた方が懸命です。
ドメインのネームサーバー、DNS設定を新サーバーのものに変更する
テーマ変更、デザイン変更など、大掛かりなサイトのアップデートはDNSの変更前にやっておくといいでしょう。
新サーバーのサイトが他人に公開しても大丈夫な状態になっていると確認したら、hostsファイルの書き換えを解除し、ドメインの「ネームサーバーやDNS設定を新サーバーの方に切り替え」ます。
この作業手順はサーバー、ドメイン会社によって異なるので、それぞれのマニュアルを参照してください。
この作業が完了すると、無事インターネット経由でサイトにアクセスしてきたすべての人が「新サーバーに引っ越した自分のサイト」を閲覧できるようになります。
念の為1、2週間ほどは旧サーバーの契約も残しておき、常に新サーバーの方にアクセスされるようになった段階で旧サーバーを解約するようにしましょう。
万が一新サーバー側で移行トラブルがあった場合は、再びドメインのDNS設定を旧サーバーのものに変更することで以前のサイトを表示することができます。
常時SSL化しているサイトのサーバー移転には注意が必要!
新サーバーでSSL証明書を取得するまでサイトが表示されなくなる
すでにサイトのURLを「https」に変更し、SSL化したWordPressサイトを運営している人は移転に際し注意が必要です。
サイトのSSL化に必要な証明書はサーバーに保管されているので、SSL証明書は新サーバーの方でも取得し直さなければなりません。
新サーバーの方でSSL証明書を取得していない場合、ブラウザの警告によってサイトが表示されなくなります。
現在、大半のレンタルサーバー会社では無料SSLの提供を行っていますが、基本的に無料SSLはDNSを切り替えた後でないと取得できない、という大きな問題があります。
つまり、SSL化したサイトのサーバー移転を行うと、新サーバーにDNS切り替えを行ってからSSL証明書を取得するまでの間サイトが表示されなくなってしまうのです。。
これを避けるには、
- 証明書の持ち込みに対応したレンタルサーバーを契約し、DNS切り替え前にSSL化を完了する
- メール認証に対応したSSL証明書を取得しDNS切り替え前にSSL化を完了する
という選択肢があります。
解決策1:SSLの持ち込みに対応したサーバーを利用する
前者のDNS切り替え前の「SSL証明書の持ち込み」に対応したレンタルサーバーは「MixHost
手順も「SSLなう」というサイトで無料SSLである「Let’s encrypt」の証明書を取得し、サーバーにアップロードするという少々複雑な手間がかかります。
参考:SSLサイトのままエックスサーバーからmixhostへサーバー移転する方法 – Hovys
VPSの「Kusanagi」など、Root権限が付与されるサーバーの場合でも上記の「SSLなう」で取得したSSL証明書をDNS切り替え前に設置することが可能です。
解決策2:メール認証に対応したSSL証明書を取得する
後者のメール認証に対応したSSL証明書を取り扱っているレンタルサーバーも多くありません。
メール認証に対応しているSSL証明書で代表的なのは、「エックスサーバー
1年後に無料SSLである「Let’ encrypt」に切り替えも可能なので、絶対にサイトが表示されない期間をつくりたくない、という人は1000円払ってCoreSSLを利用するのもありでしょう。
メール認証では「SSL化したい独自ドメインのメールアドレス」(旧サーバーで受信できればOK)が必要です。
またメールアドレスも
- admin@独自ドメイン
- webmaster@独自ドメイン
- hostmaster@独自ドメイン
など特定の文字列のものしか対応していないので、もし上記以外のメアドで運用している場合は新しくアカウントを作っておかなければなりません(メールアドレス、アカウントはどこのサーバーでも複数利用できるはずです)。
たった1000円程度のお金でDNS切り替え前のSSL化を完了できるので、このパターンが一番ラクだと思います。
1時間程度サイトが表示されないのはあきらめる?
個人的な経験では、DNSの切り替えからSSL取得が可能になるまでは遅くても30分〜1時間程度なので、割り切ってDNS切り替え前のSSL化はあきらめる、という選択肢もあります。
大半のレンタルサーバー会社では無料SSLの取得は自動化されており、営業時間外でも申込み後すぐに完了するようになっています。
アクセスの少ない深夜、早朝などにDNS切り替えを行い、少し時間をおいてレンタルサーバーのログインページからSSLを取得する、というのも選択肢としてはありでしょう。