先日、エックスサーバーからmixhostにWordPressサイトをサーバー移転しました。
その時、自分が行ったWordPress移転作業をメモがてら紹介したいと思います。
目次
主な手順
WordPressサイトを他サーバーからmixhostに移転するのに必要な手順は以下になります。
- WordPressのデータファイルを移転元サーバーからダウンロード
- WordPressのデータベースを移転元サーバーからダウンロード
- mixhostでドメインの設定
- mixhostでデータベースの作成
- WordPress設定ファイルの編集
- mixhostでデータベースのインポート
- WordPressデータファイルのアップロード
- 動作確認
- ネームサーバーの変更
簡単に説明すると、WordPressの以下のデータを「古いサーバーから新しいサーバーに移す」ということをするだけです。
- WordPressデータファイル(WordPress、プラグイン、テーマ、画像等のファイル)
- WordPressのMySQLデータベース(文章、設定データなど)
あとは、mixhost側で動作確認をしてネームサーバーを変更するだけです。
WPデータファイルを移転元サーバーからダウンロード
まずは、移転元となるサーバーからWordPressデータをダウンロードする必要があります。
サーバーから、WordPressデータをダウンロードするには、FTPでの接続が必要になります。
FTPソフトの使い方がわからない場合は、以下の設定方法を参照してください。
ダウンロードするファイル(エックスサーバーの場合)
エックスサーバーの場合は、以下のような階層にある「public_html」フォルダの中身をすべてローカルパソコンにダウンロードします。
以下のように、全てを選択してローカルにダウンロードしてしまってください。
僕の場合は、全ファイルサイズが大きすぎたせいか、ダウンロードに10時間以上はかかりました。
WPデータベースを移転元サーバーからダウンロード
WordPressファイルをダウンロードしている間にも、次はデータベースのダウンロードを行います。
phpMyAdminにログインする
エックスサーバーの場合は、サーバーパネルにログインして「データベース」から現在使用しているMySQLバージョンのphpMyAdminを選択してください。
phpMyAdminからデータベースのエクスポート
phpMyAdminにログインできたら、データベースを選択します。
データベースを選択したら、右ペインにある「エクスポート」タブを選択し「実行」ボタンを押してください。
データベースのデータサイズが大きすぎなければ、特に設定を変更することなく実行ボタンを押すだけで、SQLファイルをダウンロードすることができます。

データベースが512MBを超えている場合
データベースのエクスポートを一括でできない場合は、まず「構造」タブを選択します。
すると、以下のような表が表示されるので、それぞれのテーブルのサイズを確認して大きなサイズのテーブルがないかチェックしてください。
あとは、「エクスポート」タブから「エクスポート方法:詳細」オプションを選択して、出力するテーブルサイズが512MB以上にならないよう何回かに分けてエクスポートを実行してください。
データベース出力がよくわからない場合は、無駄に時間を浪費するより、mixhostには「WordPress移転代行サービス」もあります。
mixhostでドメインの設定
pthoto by Darwin Bell
移転元のサーバーで、WordPress関連データのダウンロードが終わったら、次はmixhost側で設定を行います。
mixhostでドメイン設定の前に
ただ、移設をするには当然ながら、mixhostにアカウントを開設してある必要があります。
mixhostは最長の30日間返金保証があるため存分に試した後、気に入らなかったら返金を要求することもできます。
サーバーを試用する方法は以下を参照してください。
ドメインを設定する
mixhostでは、まずドメインの登録を行います。
ドメイン登録を行うには、サーバーの管理パネル(cPanel)にログインして「ドメイン」項目の「アドオンドメイン」を選択してください。
すると、「アドオンドメインの作成」画面が表示されるので、以下のように入力して「ドメインの追加」ボタンを押してください(以下は当サイトのドメイン登録時のサンプル)。
- 新しいドメイン名
利用したい独自ドメイン名を入力(wwwは不要) - サブドメイン
希望するサブドメイン(新しいドメイン名を入力したら自動的に入力されたのを利用) - ドキュメントルート
サイトデータをアップロードするフォルダの入力(新しいドメイン名を入力したら自動的入力されたのを利用)。 - このアドオンドメインに関連付けるFTPアカウントを作成します。
WEBサイトごとに別のFTPアカウントでサイトデータをアップロードしたい場合に有効にします(僕の場合は不要だったので無効のまま)。WEBサイトごとに管理者が違う場合などに利用。
アドオンドメインが正しく設定されると以下のように表示されます。
参考 WordPressの他サーバーからの移行方法(プラグイン不使用) – mixhostサポートサイト
データベースの作成
次は、データベースの作成です。
cPanelの「データベース」項目から「MySQLデータベースウィザード」を選択してください。
「データベースウィザード」が表示されたら、「新しいデータベース」にデータベース名を入力して「次の手順」ボタンを押してください。
次に、データベース用の「ユーザー名」と「パスワード」を入力し「ユーザーの作成」ボタンを押します。
すると、ユーザーにデータベースの権限を与える画面が表示されるので「全ての権限」にチェック入れて「次の手順」ボタンを押してください。
データベースの作成に成功すると、以下のように表示されます。
WordPress設定ファイルの編集
次に、先程移転元サーバーからダウンロードしたWordPressの設定ファイル「wp-config.php」を編集します。
ダウンロードフォルダにある「wp-config.php」をエディターで開いて以下のような設定情報部分を探してください。
この部分を、以下のように編集します。
/** WordPress のためのデータベース名 */ define('DB_NAME', 'データベース名'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'データベースユーザー名'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'パスワード'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost');
入力例は以下になります。
/** WordPress のためのデータベース名 */ define('DB_NAME', 'USERID_database_name'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'USERID_user_name'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'YOUR_PASSWORD'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost');
USERID部分には、mixhostで割り当てられた「ユーザーID」が入ります。
YOUR_PASSWORD部分には、登録したパスワードを入力してください。
mixhostでは、「MySQLのホスト名」は「localhost」となります。
データベースのインポート
次に、「mixhost側のデータベース」に「移転元データベースからエクスポートしたSQLファイル」をインポートします。
mixhostのcPanelを開いて「データベース」項目にある「phpMyAdmin」を選択します。
phpMyAdminが開いたら、先程作成したデータベースを選択します。
データベースを選択したら「インポート」タブを選択してください。
ここで、先程移転元のサーバーからエクスポートしたSQLファイルを準備します。
アップロードファイルの「参照」ボタンを押してSQLファイルを選択します。
SQLファイルを選択したら、「実行」ボタンを押してください。
SQLファイルのインポートに成功すると、以下のような画面が表示され、データベースにはテーブルが作成されます。
SQLファイルのインポートがうまくいかない場合
mixhostのphpMyAdminにも制限があり、インポート最大サイズが512MBより大きなSQLはインポートできません。
僕の場合は、テーブルを小分けにして2個のSQLファイルを作成し、インポートしました。
ただ、僕の場合SQLファイルを分けてインポートしたんですが、wp_postsテーブル(WordPressのコンテンツが入ったテーブル)をどうしてもphpMyAdminからはインポートできませんでした(wp_postsテーブルのサイズ的には、350MBくらいだったんですが)。
そういう時は、FTPでSQLファイルをサーバー上にアップロードしSSHのコマンド操作でSQLをインポートする必要があります。
SSHでのコマンド操作は以下になります。
$ mysql -h localhost -u ユーザ名 -p データベース名 < blogdb.sql
僕はここで面倒くさくなる
ただ僕はこの時点で、「ここでさらに、サーバーでSSH設定をし、鍵を生成して公開鍵を登録する必要があるのか…。面倒くせぇ!」となってしまいました。
このときちょうど、mixhostサポートに「WordPressテーブルにインポートできない問題」の問い合わせをしていました。その答えのついでにサポートの方が「WordPress移転代行サービスもやっていますよ」と教えていただきました。
そこで、初めてその存在を知り「お世話になるレンタルサーバーの中の人(言わばプロ)が、こんな格安で移転を代行してくれるのか!」と、飛びつくように、すぐさまお願いした次第です。
んー、商売上手。
結果的には、最初から頼んでおけば良かったです。楽すぎました。餅は餅屋です。
詳しい「WordPress移転代行手順」は以下。
WordPressデータファイルのアップロード
データベースにSQLのインポートが完了すると、次はWordPressファイルのアップロードです。
先程、移転元サーバーからダウンロードしたファイルを、mixhostにFTPでアップロードします。
FTPでmixhostに接続
あとは、FTPでmixhostのWordPressフォルダにWordPressデータファイルをアップロードします。
mixhost用のFTPの設定方法は以下を参照してください。
FFFTPを使用した設定方法は以下。
参考 FTPソフトの設定方法 – mixhostサポートサイト
FTPでアップロード
WordPressデータファイルをアップロードする場所は、ルートディレクトリの下の「public_html」の下にある「アドオンドメインで作成したドメイン名」フォルダの場所になります。
アップロードフォルダを確認したら、FTPソフトで「移転元サーバーからダウンロードしたWordPressデータファイル」をすべてアップロードしてください。
FTPソフトで全てのファイルがアップロードされるまでお待ちください。
全てのファイルをアップロードし終えたら、全WordPressデータの移動は終了です。
htaccessの中身は編集して、前サーバー用の設定は削除しても良いかもしれません。
もし.htaccessファイルを誤って削除した場合は、作成して以下の記述が必要です。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
動作確認
最後に、WordPressデータ全てが適切にmixhostサーバーに移動されているかを確認します。
mixhostでは、動作確認用のURLも用意してくれています。
ただ、「動作確認用URL」ではWordPress管理画面に入れなかったり、ドメイン名が変わるので、以下のようにクロスドメイン制約によるFont Awesomeの表示不具合が出たりします。
ちなみにこちらは正常に表示された場合。
ですので、動作確認をする際は、必ずhostsファイルを編集して動作確認することをおすすめします。
hostsファイル編集による動作確認方法は以下を参照してください。
WordPressの場合、以下の点をしっかりと動作確認してください。
- テーマはきちんと反映されているか
- インデックスページは表示されるか?
- 投稿ページは表示されるか?
- 固定ページは表示されるか?
- WordPress管理画面にログイン出来るか?
- WordPress管理画面の設定画面は動作するか?
- WordPress管理画面の設定が引き継がれているか?
- プラグインの動作に問題はないか?
僕の場合は、だいたいこんなところを動作確認しました。
参考 hostsファイルの設定方法 – mixhostサポートサイト
ネームサーバーの変更
諸々の動作確認を終えて、問題がなければ、最後にネームサーバーを変更します。
尚、ネームサーバーを変更さえしなければ、移設元のWordPressが一般の訪問者には表示されるので、しっかりと動作確認を行ってください。
ネームサーバーの変更
ちなみに、mixhostのネームサーバーは以下のようになっています。
- ネームサーバー 1: ns1.mixhost.jp
- ネームサーバー 2: ns2.mixhost.jp
- ネームサーバー 3: ns3.mixhost.jp
- ネームサーバー 4: ns4.mixhost.jp
- ネームサーバー 5: ns5.mixhost.jp
これらのネームサーバー情報を利用しておられるドメインサービスで変更すれば、数時間~72時間程度で徐々にmixhostサーバーにアクセスが流れてきます。
アクセス解析を見るに、僕の場合は全てのアクセスが流れてくるまで、72時間近くはかかりました。なので、ネームサーバーを変更すると、元に戻すとまた反映まで時間がかかるので、hostsファイルを使った念入りな動作確認は重要です。
ムームードメインでの設定例
僕の独自ドメインは、ムームードメインで設定しているので一応設定の紹介です。
それぞれのドメインサービスの設定項目に置き換えて設定してみてください。
まずは、ムームードメインの管理画面に入ります。
ムームードメインにログインしたら、「ドメイン操作」の「ネームサーバー設定変更」から、対象ドメインの「ネームサーバー設定変更」ボタンを押してください。
「ネームサーバー設定変更」画面が表示されたら、「GMOペパボ以外 のネームサーバを使用する」のネームサーバを以下のように変更してください。
ネームサーバーの設定を終えたら「ネームサーバー設定変更」ボタン押して変更確定させてください。
あとは、ネームサーバーの変更が浸透するまでただ待つだけです。
まとめ
こんな感じで、WordPressデータをmixhostサーバーに移行することができます。
大まかな手順としてはこんな感じ。
- 移転元サーバーでWordPressデータを出力(ファイルとデータベース)
- mixhostでWordPressデータを入力(ファイルとデータベース)
- hostsファイルを編集して動作確認
- 動作に問題なければネームサーバー設定の変更
単純に言ってしまえば、これだけの作業です。ですがこれを、自分でやろうと思うと、思いのほかトラブルになります。
実際に僕が困ったのは、以下のようなトラブル。
- phpMyAdminデータベースエクスポートの容量制限で出力できない
- データベースをエクスポートしてもphpMyAdminでインポートできないテーブルがある
- データベースを正常に出力したつもりでも正常に出力されていない
こういったトラブルを回避するには、SSHを使ってコマンド操作でデータベース操作をしなければいけないようです。
なので「どうしてもmixhostへのサーバー移転がうまくいかない」といった場合には、WordPress移転代行サービスにサクッと依頼した方が、余計な時間を浪費することはなさそうです。
というわけで、「ちょっとぐらい大変でも自前でサーバー移転をやってみたい」なんて方は、今回の手法で、サーバー移転を行ってみてください。
mixhostに依頼する場合はこちら。
初めまして、高倉と申します。
いつも、わいひらさんの寝ログ楽しみに拝見させて頂いております。
ご質問ですが、【WordPressをサーバー移転して引っ越す方法(XSERVER→mixhostの例)】にて、サーバー移転を自身で行ったんですが、
何度やってもサイトが500エラーが出て、移転が上手くいかない状態です。
60記事ほどの小さなブログで、データファイルやMySQLデータベースは問題なくダウンロード→アップロード出来ました。
また、自分なりに色々と調べてて.htaccessやwp-config.phpの見直しも行ったんですがダメです。
しかもサーバー移転に使用した作業用のメインPCでは500エラーが出る上にログインすら出来ない状態にもかかわらず、
サブのモバイルPCやiPad、スマホでは普通に表示されて、サイトにログインも出来ます。ちなみにIPアドレスは前のサーバー(FUTOKA)です。
とりあえず、サーバー移転は無理せず、移転代行を検討しているですが、後者のメインPCでは表示されず、他の端末では普通に表示されログイン出来るのが理解出来ずに困っています。
色々と調べて、Googlechromeの閲覧履歴やキャッシュを削除したり、ルーターやPCの再起動などをやってみたんですが変化ありません。
たいへんお忙しいと思いますが、もし良ければご教示頂けると幸いです。
長文、たいへん失礼致しました。