別のサーバーへWordPressを移行する方法(WordPressの引っ越し)

今のサーバーが遅い、SSL化したいけど今のサーバーだと未対応などの理由でサーバー移転をする場合、サイトがWordPressで出来てるならWordPressの引っ越し作業が必要です。

こういう場合は、ドメインは同じままでサーバーだけ引っ越すということになるはずです。(ドメイン変更もする場合は、WordPressのドメインを変更してサーバー移転をする方法をご覧ください。)

基本的にはWordPressが動くサーバーであれば、どのサーバーでも今と同じ状態で移行可能です。メールフォームなどもWordPressのプラグイン機能で実現していたのであれば、移行後も設定変更せずにそのままで動きますので心配ありません。

とは、言うものの・・・

実際には旧サーバーと新サーバーの環境は全く同じではないので、動かなくなる機能があったり、表示がおかしくなったり、デザインが崩れたりということがたまにあります。一応、リスクもあるということ覚えておいてください。

WordPressの別サーバーへの移転方法の大体の流れは、こんな感じ。

  1. 新サーバーを設定して使えるようにする
  2. 旧サーバーのファイルをダウンロード
  3. 旧サーバーからデータベースをエクスポートしてダウンロード
  4. 新サーバーのデータベースを設定しインポート
  5. wp-config.php を修正する
  6. 新サーバーへファイルをアップロード
  7. ネームサーバーを切り替える

作業時間(実際に手を動かす時間)は、慣れれば一時間かかりません。

ただ、最初の新サーバーの設定がサーバーによっては数時間~1日待たないといけない場合がありますし、最後のネームサーバーの切り替えの反映にも半日~1日待たないといけません。

ファイルのダウンロードとアップロードも、画像サイズやプラグインの量にもよりますが30分以上かかる場合もあります。

なので、全体として3日。実作業は、初めてなら1~2時間程度だと思います。このあたりでスケジュール考えてから始めてください。

新サーバーを設定して使えるようにする

まずは新サーバーを使えるようにしないといけません。

今のサーバーよりも速度が早いとか、安いとか、無料SSLがあるとか、なにか良い点があるとこを選ぶはずですので、どこかを探して契約してください。

ドメインの変更はしないはずなので、全く同じドメインを設定して、初期設定(パスワードやFTPログインなど)を済ませてください。メールサーバーが別じゃない場合は、メールアドレスの設定もお忘れなく。

サーバーによりますが、エックスサーバーの場合、契約してアカウント発行まではすぐですが、ドメインをサーバーに設定して見れるようになるまで数時間~半日くらいかかります。

なので、初日の作業はココまで。という感じですね。

新サーバーの確認方法

新サーバーの設定が完了したとしても設定してるドメインが同じですので、現段階では新サーバーがちゃんと設定できてるかどうかの確認が出来ません。

こういう場合は、自分のパソコンで動作確認ができるようにhostsファイルを修正して、設定ができてるか?などを確認します。

他の人やサイトを見に来てくれる一般ユーザーは旧サーバーの内容が表示されてて何も変わらず、自分だけ新サーバーの内容を見ることができることになります。

直接hostsを修正しても良いんですが、GoogleChromeをお使いなら便利な拡張機能「HostAdminApps」を使うと新旧サーバーの表示切り替えが簡単にできるのでおすすめです。

サーバーによっては、動作確認URL(自分のドメインではなくレンタルサーバーのサブドメインなどで表示できる)を設定できる場合がありますが、この機能はWordPressでサイトを構築している場合には使えませんのでご注意ください。使うと後でややこしいことになります。

不要なプラグインを停止する

この作業は必須ではありませんが、トラブルを防ぐためにもやっておいたほうが良いと思います。

今動いてるWordPressにログインして、定期的に何かするようなプラグイン、情報を送ったり送信したりするプラグイン、キャッシュ制御のプラグインなどを停止するか、それらの機能をOFFにしてください。

以下、いくつか例を上げますので参考にしてください。

  • バックアップ関係のプラグイン(BackWPup、UpdraftPlus など)は、一度手動で実行してバックアップをとったあと、停止。
  • セキュリティ関係のプラグイン(SiteGuard WP Plugin など)
  • キャッシュ関係のプラグイン(W3 Total Cache、WP Super Cache、001 Prime Strategy Translate Accelerator など)
  • 更新通知、Ping送信関係のプラグイン(Google XML Sitemapsの通知を更新機能、WebSub/PubSubHubbub など)
  • リンク切れチェック、エラーチェック関係プラグイン(Broken Link Checker、Check Copy Contentsなど)
  • 定期的に実行するプラグイン(EWWW Image Optimizerのスケジュール最適化機能、WP-Optimizeの自動最適化機能 など)

他はともかく、セキュリティ関係とキャッシュ関係は停止しておくことをおすすめします。

旧サーバーのファイルをダウンロードする

旧サーバー(今のサーバー)にFTPで接続して、ファイルをすべてダウンロードしてください。

必要なデータはウェブの公開領域以下の全データです。一般的には「public_html」や「httpdocs」「httpsdocs」などのフォルダ名になってると思います。

旧サーバーのウェブサーバーの領域(FTP接続画面)
旧サーバーのpublic_html(ドキュメントルート)フォルダ

上の画像はエックスサーバーの場合(のドメイン名のフォルダ)の中身です。public_html以下の内容がウェブサイトの中身ですのでこのフォルダを丸ごとダウンロードしてください。

サイトがWordPressのみで作られてる場合は、他のフォルダの中身は不要です。

ダウンロード対象のフォルダの場所が分からない場合は、今のレンタルサーバー会社に聞くか、ヘルプページなどで「ドキュメントルート」で検索すれば載ってると思います。

旧サーバーからデータベースをエクスポートしてダウンロード

旧サーバー(今のサーバー)のWordPressが使ってるデータベースをエクスポートしてください。

WordPressの記事の内容、テーマ、プラグイン、ウィジットなどの設定は、ファイルではなくデータベースに保存されてます。

FTPでファイルをダウンロードしてアップロードするだけでは、WordPressの移行作業は出来ません。

このデータベースのエクスポート/インポート作業は必須ですので必ずやってください。

データベース名の確認

サーバ上にデータベースが一つしかない場合は問題ないんですが、複数データベースがある場合は対象のデータベースを間違えないようにしてください。

普通は分かりやすいようにデータベース名もドメイン名やサイト名などと似たような名前が付いてると思いますが、データベース名がわからない場合は以下の方法で確認してください。

さっきダウンロードしたファイルの中のWordPressの入ってるフォルダ(通常は「wp」フォルダ内)にwp-config.phpというファイルがあるはずです。

WordPressのwp-config.phpの場所
WordPressのwp-config.phpの場所

このファイルをエディタで開くと、下の方に「WordPress のためのデータベース名」の箇所があって、

define('DB_NAME', 'primarytext_kc');

と書いてる部分があります。この右側がデータベースの名前です。この場合だと「primarytext_kc」ですね。

WordPressのwp-config.phpの中身(データベース名)
wp-config.phpでデータベースが書いてる場所

データベースのバックアップ機能がある場合

レンタルサーバーによっては、データベースのバックアップを簡単に取ることができる機能がある場合があります。もしあれば、この機能でエクスポートしてください。

X2サーバーのデータベースバックアップ機能
X2サーバーのデータベースバックアップ機能

上の画面は、X2サーバーのMySQLバックアップの画面。対象のデータベースを間違えないようにして、「エクスポート実行」をするとデータベースファイルがダウンロード出来ます。(通常は「~.sql」というファイルになるはずです)

圧縮はどちらでも良いですが、データ量が多い場合は圧縮しておいてください。(インポートする時にファイルサイズが大きすぎるとアップロードできない可能性があります)

他に何かオプション指定ができる場合でも、初期状態(何も追加設定なし)でエクスポートしてください。

phpMyAdminでエクスポートする

データベースのバックアップ機能がない場合は、phpMyAdminを使ってデータベースをエクスポートします。

サーバーの管理画面のどっか(おそらく、データベース設定の近くあたり)にphpMyAdminへ入るためのリンクがあると思います。

スターサーバーのphpMyAdminへのリンク
phpMyAdminへのリンク(スターサーバーの場合)

リンクをクリックするとユーザー名とパスワードを聞かれるはずですので、入力してphpMyAdminに入ってください。

ユーザー名とパスワードがわからない場合は、上に書いてるデータベース名の確認と同じで「wp-config.php」に載ってます。

phpMyAdminへのリンクがない場合

普通はサーバーの管理画面にあるはずですが、もしリンクがない場合、利用者側ではデータベースの操作ができない可能性があります。

レンタルサーバー会社に「データベースのエクスポートがしたい」と問い合わせると教えてもらえるか、エクスポート作業をしてもらえるかもしれません。一度、聞いてみてください。

phpMyAdminが表示されたら、左側のデータベース名一覧のところで対象のデータベース(「information_schema」ではない方)を選択してください。

「エクスポート」をクリックして、オプション指定は変更せずにそのまま「実行」を押すとデータベースのエクスポートが出来ます。

phpMyAdminでのデータベースのエクスポート
phpMyAdminでのデータベースのエクスポート

新サーバーのデータベースを設定しインポート

さきほどエクスポートしてダウンロードしたファイルを新サーバーのデータベースにインポートすれば、データベースの移行が完了します。

データベースを作成する

インポート作業自体ではデータベースの作成は行われませんので、先にデータベースを作っておく必要があります。移行先のサーバーのマニュアルなどを参考にデータベースを作成してください。

一般的には、

  1. データベースユーザーの作成(ユーザー名とパスワードを設定)
  2. データベースを作成
  3. 作成したデータベースにユーザーを割り当てる

という流れになると思います。

データベース名、ユーザー名とパスワードなどは旧サーバーと違うものでも問題ありません。(同じ名前で設定出来ない場合が多いと思います)

エックスサーバーのデータベース設定画面
エックスサーバーのデータベース設定画面

ここで作成・設定した内容と、近くに載ってるはずの以下の情報

  • データベース名
  • ユーザー名
  • パスワード
  • MySQLホスト名(上の画面だと青枠の部分)

をどこかにメモしておいてください。後で必要です。

phpMyAdminでデータベースをインポートする

先ほど作成した新しいデータベースのユーザー名とパスワードでphpMyAdminに入ってください。phpMyAdminへのリンクは管理画面内にあるはずです。

phpMyAdminが表示されたら、左側のデータベース名一覧のところで対象のデータベース(「information_schema」ではない方)を選択してください。

「インポート」をクリックして、旧サーバーでエクスポートしたデータベースのファイル(「~.sql」というファイル)をファイル選択で選んで、オプション指定は変更せずにそのまま「実行」を押すとデータベースのインポートが出来ます。

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

成功すれば、「インポートは正常に終了しました。」というメッセージが出て、左側にテーブルがたくさん増えてるはずです。

phpMyAdminでのデータベースのインポート完了
データベースのインポートが正常に完了した状態

wp-config.phpを修正する

データベースの名前やユーザー名、データベースサーバーが旧サーバーと新サーバーでは違うはずなので、これらのデータベース接続情報を修正します。

旧サーバーからダウンロードしたファイルの中のWordPressの入ってるフォルダ(通常は「wp」フォルダ内)にwp-config.phpというファイルがありますので、エディタ(秀丸など)で開いてください。

WordPressのwp-config.phpの修正(データベース接続情報)
wp-config.phpのデータベース接続情報の修正箇所

新しいデータベースを作った時にメモしておいてもらった

  • データベース名
  • ユーザー名
  • パスワード
  • MySQLホスト名

の4箇所を新しい内容に修正して上書き保存してください。

新サーバーへファイルをアップロード

ファイルをアップロードする前に、HostAdminAppsなどでhostsを切り替えて、この段階で新サーバーがちゃんと見れてるかどうか確認してください。

エックスサーバーの初期状態のデフォルト画面
エックスサーバー初期状態の画面

見れない場合はまだ新サーバーの準備が出来てませんので、もうちょっと待ってからにしましょう。

OKなら、FTPで接続して新サーバーのドキュメントルートフォルダ(「public_html」フォルダなど)にある「.htaccess」以外のファイルを削除してください。(上のキャプチャのような初期状態の画面を出すためのhtmlや画像を削除する)

その後、旧サーバーからダウンロードしたファイルのうちルートの「.htaccess」以外のファイルをすべてアップロードします。

WordPressの移転作業でのファイルのアップロード
.htaccess以外のファイルをアップロードする

なんで「.htaccess」以外?

旧サーバーからダウンロードした「.htaccess」ファイルには前のサーバー固有の設定が書かれてる場合が多いです。

例えば、PHPのバージョン指定、CGI実行指定、キャッシュの指定、マルチドメイン運用の場合のリライト指定、SSLの指定など。

これをそのまま新サーバーにアップロードすると、パスなどが違ってたり、そのオプションがサポートされてなかったりすると、サイトが全く表示されなかったり、500 Internal Server Errorになったりします。

新サーバーの方にすでに存在してる「.htaccess」にも、そのサーバーで動かすために必須の記述がある場合があります。これを旧サーバーの内容で上書きすると、同じようにサイトが見れなくなる可能性があります。

不要なトラブルを防ぐためにも.htaccessは上書きしないことをおすすめします。

「.htaccess」でリダイレクトなどをしてた場合は、後で新サーバーの「.htaccess」をダウンロードしてきて内容を確認しながら手動で追記してください。

WordPressにログインして、パーマリンクの設定を保存

さっきサイト確認をしてれば、この段階で新サーバーに自分だけアクセスできる状態のはずなので、WordPressにログインして管理画面に入ってください。

管理画面のURLは以前と同じ、ユーザー名とパスワードも以前と全く同じです。

404で見つからない場合は、

http://(ドメイン名)/wp/wp-login.php

でアクセスすれば入れるはずです。(「wp」フォルダにWordPressを入れてる場合)

WordPressの管理画面がちゃんと見れたら、設定 > パーマリンク設定に入ってください。大丈夫だと思いますが、一応、内容がおかしくないか確認したら、変更がなくても「変更を保存」をクリックしてください。

WordPressのパーマリンク設定の保存
パーマリンク設定の保存(この画面は設定が拡張されてるので通常とは違いますが気にしないでください)

これで、ルートにある「.htaccess」ファイルが更新されてサイトへのアクセスが可能になります。「パーマリンク構造を更新しました。」とメッセージが出れば完了です。

「.htaccess を更新する必要があります。」の場合

「変更を保存」をクリックしたあと、「.htaccess を更新する必要があります。」というメッセージが出た場合、.htaccessのパーミッションを修正するかドキュメントルートフォルダのパーミッションを変更する事が必要です。

ただ、ここまでこのページの手順通りで作業してきて、このメッセージが出た場合、今回移転先として利用しようとしてるサーバーは止めたほうが良いです。

この問題を修正しても今後WordPressでサイト運用をしていく上で、WordPressやプラグインのバージョンアップが出来ない、画像がアップロードできない、など問題が発生する可能性が高いです。

使おうとしてるサーバーはWordPressの利用を前提としてサーバー設定等がされてませんので、他のWordPressが問題なく使えるようなサーバーを検討したほうが良いです。

候補をお探しなら、WordPressでの運用も全く問題なく、高速表示、無料SSLが月額1,000円で利用できるできるエックスサーバーがおすすめです。

ついでに、ユーザー > プロフィール に入って、WordPressの管理画面の色を変えておくと新旧サーバーの見分けが付くのでわかりやすくなります。(旧サーバーの管理画面とはぜんぜん違う色にする)

WordPressのプロフィール画面
プロフィール画面で色を変えておくと便利

サイトの表示確認とネームサーバーの切り替え

ココまでくればサイトはちゃんと表示されてるはずです。(ただし、自分のパソコンでしかまだ見れません。)

表示がおかしくないか?ちゃんと動いてるか?画像などのリンクは切れてないか?メールフォームは動いてるか?などチェックしてください。

OKであれば、ドメイン管理会社の管理画面に入って、ネームサーバーを新サーバーへ向ける切り替えをしてください。

変更すべきネームサーバーは、サーバー会社のヘルプページや最初のアカウント設定時のメールなどに書かれてるはずです。

エックスサーバーであれば、

  • ns1.xserver.jp
  • ns2.xserver.jp
  • ns3.xserver.jp
  • ns4.xserver.jp
  • ns5.xserver.jp

になります。

お名前.comのネームサーバーの変更画面
お名前.comのネームサーバーの変更画面

上の画面はお名前.comのネームサーバーの変更画面です。サーバーはエックスサーバーですが、ドメインの管理はお名前.comなので、お名前.comで変更します。

自分のドメインがどこで管理されてるか?を確認して、ドメインの管理会社の管理画面で変更してください。

2日目の作業はココまで。ネームサーバーの変更反映に半日~1日かかるので続きは翌日です。この段階でhostsファイルやHostAdminAppsで変更した部分を削除しておくとこの先のミスが無くなります。

停止したプラグインの再開ともう一度、動作確認

ネームサーバーの変更が反映されていれば、新サーバーへ切り替わってるはずです。

hostsファイルやHostAdminAppsでの変更が削除されてるのを確認して、WordPressの管理画面に入ってください。昨日、色を変えてるはずなので、変えた色になってればサーバーの切り替えが終わってます。

念の為、他のパソコンやスマホなどからも入ってみてください。変えた色の管理画面になってるかを確認してください。

OKであれば、移転前に停止したプラグインを再開して設定等を見直してください。キャッシュ系のプラグインの場合、キャッシュを保存する場所のパスを変更する必要があるかもしれません。

プラグインの再開をネームサーバー切り替え後にする理由は?

昨日の段階で再開しても良いんですが、一部のプラグインはネームサーバー切り替え後でないとエラーがでたり動かないものがあります。

定期的に実行されるものや時間設定してスケジュールで動くものは、ネームサーバー切り替え前だと動きませんので、不要なトラブルを避けるために切り替え後にやった方が良いと思います。

プラグインなどを全部再開したら、もう一度サイトのチェックをしましょう。メールフォームからもテストメールを送信してみてください。

メールサーバーも同時に移行してる場合は、メールソフトの設定変更もしないといけません。

gmailやプロバイダーのWebメールなどからテストでメールを送ってみて、さっきのメールフォームからのテストと合わせて受信できたかどうかを確認してください。

問題なさそうなら、以上でWordPressの引っ越し作業は終わりです。

なんらかのトラブルの備えて旧サーバーは1ヶ月ほど置いといてから解約したほうが安全です。

おまけ

かなり詳しく書いたので、これを読んでもらえればWordPressの移転作業はできると思います。

でも、読んでみたけどややこしそう、やってみたけどうまくいかなかった、などでお困りの場合、移転作業や移転時のトラブル対応をプライマリーテキストでお受けすることが出来ます。お困りでしたらぜひご依頼ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です