シックスコアからエックスサーバーへの移転時に苦悩したトラブル4つ

2016年9月29日

今回の引っ越し作業も大変だった

サーバー移転

3年前、ロリポップからシックスコアに引っ越し作業をした時も、すごい大変な思いをして、失敗もしまくって、なんだかんだで移転完了して、それなりにノウハウ蓄積できたかなーって思ってたんですよ。

でもやっぱりサーバー変わると作業内容だったりエラー内容だったり、いろいろ変わっちゃうもんなんですね。

移転作業を1回経験したおかげで戸惑わずに作業できた事もあるにはありましたが(たとえばphpMyAdminの画面を見て緊張しなかったとか)、今回もやっぱり大変でした。

ってことで今回のエントリーは、前回エントリーで割愛した細かい作業内容やトラブルについて。

管理サイト2つをシックスコアからエックスサーバーに移転完了

当ブログで約3年間利用していた「シックスコア」から、この度「エックスサーバー」へとレンタルサーバーを移転しました。移転に至った理由や移転後の変化などについて簡単にまとめています。

基本的な作業の流れ

今回私は「シックスコア」から「エックスサーバー」にレンタルサーバーを移転しました。以降、文中で「旧サーバー」と書いてる箇所はシックスコアを、「新サーバー」と書いてる箇所はエックスサーバーを表します。

シックスコアからエックスサーバーへの移転に限らず、サーバーの引っ越し作業って大体どこも「基本的にやること」は同じはずなんですよ。

で、今回エックスサーバーへの移転ですが、エックスサーバーのサイトにWordPress移転作業まとめページがあります。少し詳しい人であれば、この公式サイトの解説を見ただけで作業できちゃう気がします。

公式サイト以外には、以下の記事を参考にさせて頂きました。

【参考】【サーバ移転】SIXCOREからXSERVERへWordPressを移転する方法
【参考】WordPress移行!ロリポップからエックスサーバーへの引っ越し方法

2つめの参考記事はロリポップからの移転内容ですが、「Duplicator」というWordPressプラグインを使用して簡単にサーバー引っ越し作業が出来るという分かりやすい解説がされています。私はデータサイズが大き過ぎたので「Duplicator」を使っていません。

基本的な作業の流れは上の参考記事にも書かれてますが、ザックリまとめると以下の通り。

①旧サーバーのWordPressファイルをすべてローカル環境にダウンロード
②旧サーバーのデータベースをエクスポートし、ローカル環境に保存
③新サーバー側で「ドメインの追加設定」
④新サーバー側で「MySQLの追加」「MySQLユーザー追加」
⑤wp-confingファイルにデータベース情報を反映させて上書き保存
⑥ローカル環境に保存しておいた旧サーバーのWordPress全ファイルを新サーバー側にアップロード
⑦新サーバー側にデータベースのインポート
⑧新サーバー側にうまく移行できたか、hostsファイルを修正して確認
⑨旧サーバーと新サーバーの表示を見分けるために細工をする
⑩ネームサーバーの変更

ではザックリと解説を。

①旧サーバーのWordPressファイルをすべてローカル環境にダウンロード

旧サーバー側(シックスコア)にあるWordPressの全データを、FTPツールを使ってローカル環境(=自分のPC)にダウンロード保存します。記事に使用している写真や画像データが多ければ多いほど作業時間は長くなります。

うちの「りくまろぐ」は特にウォーキング記事で大量の写真を使用する(さらに仕様の関係で1つの写真ファイルを別サイズで6個生成してる)のもあり、全ファイルをダウンロード完了するのに3時間以上かかりました。

その間、あまりにヒマだったのでネット麻雀してました。勝ちました。

②旧サーバーのデータベースをエクスポートし、ローカル環境に保存

データベース(MySQL)をエクスポートし、SQLファイルとしてPCに保存します。

方法としては、

◆シックスコアの「MySQLバックアップ」機能を使う
◆phpMyAdminで直接エクスポートする

大きく2つ。詳細は後ほど、トラブル解説のところで書きます。

③新サーバー側で「ドメインの追加設定」

エックスサーバー側で「ドメインの追加設定」というのをやります。詳しくはエックスサーバー公式解説ページに書かれてます。

④新サーバー側で「MySQLの追加」「MySQLユーザー追加」

各サイトで使うためのデータベース(MySQL)をエックスサーバー側で作ってあげます。私の場合は「りくまろぐ」と「WWE HOLIC」で2個。

これも詳しくはエックスサーバー公式解説ページに書かれてます。

⑤wp-confingファイルにデータベース情報を反映させて上書き保存

作業②でローカル環境に保存したWordPress全ファイルのうち「wp-config.php」というファイルがあります。このファイルにデータベース情報を書いて保存することで、WordPressとMySQLが繋がります。

内容としては以下の通り。

◆DB_NAME … ④の「MySQL追加」で登録したMySQLデータベース名
◆DB_USER … ④の「MySQLユーザー追加」で登録したアクセス権所有ユーザ名
◆DB_PASSWORD … お好きなパスワード(メモするなどして忘れないように!)
◆DB_HOST … ④の「MySQL追加」登録が完了した際に表示されたMySQLのホスト名

⑥ローカル環境に保存しておいた旧サーバーのWordPress全ファイルを新サーバー側にアップロード

作業②でローカル環境に保存したWordPress全ファイルを、再びFTPツールを使って今度は新サーバー(エックスサーバー)にアップロードします。

シックスコア時代には「FileZilla」というFTPツールを使ってたのですが、今回新たにMacアプリの「ForkLift」を使うことにしました。以前に買ってたけど全然使ってなかったので。

ForkLift - File Manager and FTP/SFTP/WebDAV/Amazon S3 client

ForkLift – File Manager and FTP/SFTP/WebDAV/Amazon S3 client
価格: ¥2,400 (2016.9.28時点)
カテゴリ: ユーティリティ, 仕事効率化
ダウンロード

【参考】ForkLift(FTPクライアント)でロリポップに接続する設定方法

参考記事はロリポップの設定内容になってるので、エックスサーバー用の設定内容を書いておくと、

◆Name … 自分で判別しやすい好きな名前(例:りくまろぐXserver)
◆Server … エックスサーバー契約完了メールに記載されてた「FTPホスト」
◆Username … エックスサーバー契約完了メールに記載されてた「FTPユーザー」
◆Password … エックスサーバー契約完了メールに記載されてた「FTPパスワード」

上の通りで上手くいくはずなのですが、ここで私は大きなミスをやらかしました。詳しくは後ほど。

⑦新サーバー側にデータベースのインポート

作業②でエクスポートしたSQLファイルを、今度はエックスサーバー側のMySQLにインポートします。

「WWE HOLIC」のデータをインポートした際は(開設1年未満でデータ量が少なかったのもあり)何の問題もなかったんです。

しかし、「りくまろぐ」のインポートが今回の移転作業で最も苦労しました

作業②と作業⑦の合わせ技でトラブルが長時間解決できず、解決方法が分かるまで11時間以上かかってしまいました。これも詳しくは後ほど。

⑧新サーバー側にうまく移行できたか、hostsファイルを修正して確認

作業⑦が完了した時点では、自分のサイトが旧サーバーと新サーバー、2つのサーバーに同時存在している状態です。しかしこの時点で、新サーバーに移転させたブログは管理者を含めて誰も見られません。ブラウザでアクセスしても見えるのは旧サーバー側なんです。

たとえるなら、鳥取県から福岡県に引っ越したけど、郵便局に転送届けを出していないとハガキや郵便物が全て新居の福岡県ではなく旧住所の鳥取県に届いてしまうのと同じ。

ただ、PCの中にある「hosts」というファイルに細工をしてあげることで、自分だけ暫定的に新サーバーに移転させたサイトを閲覧・確認することができます。これやっとかないと、後で完全移転したときに突然ミスが発覚して慌てたりしますので、やっとくべきです。

hostsファイルの変更方法などは以下記事を参考にさせて頂きました。(私の環境はMacなので、Macでの確認方法になります)

【参考】Macでhostsファイルを変更して本公開直前のサイト確認をする方法

⑨旧サーバーと新サーバーの表示を見分けるために細工をする

このあと作業⑩でやることになる「ネームサーバーの変更」が反映されたかどうかを分かりやすくするため、旧サーバーと新サーバーのサイト表示内容を少しだけ修正しておき、ネームサーバー変更が反映された際に識別しやすくします。

私はトップページ先頭にある「人気カテゴリーの最新エントリー」という見出しを「大人気カテゴリーの最新エントリー」と変更しておきました。

ブログにアクセスして「人気カテゴリー」のままなら旧サーバー、「大人気カテゴリー」に変わっていれば新サーバー、つまりネームサーバー変更が反映され、移転作業が完了したということが判別できます。

確認できたら「大人気」を「人気」に戻しました。作業⑧で変更したhostsファイルを元の内容に戻して保存するのを忘れずに

この作業⑨でもう1つ、必ずやらなければならない作業があります。しかし私は知らなかったため、大変な目に遭いました。詳細は後ほど。

⑩ネームサーバーの変更

ドメインを取得したサイト(例:「お名前.com」や「ムームードメイン」など)の管理画面でネームサーバーを変更します。

これも詳しくはエックスサーバー公式解説ページに書かれてます。

エックスサーバーへの移行作業で苦労したこと

今回の移行作業では大小様々なトラブルを経験しました。その中でも特に大変だったトラブルが4つ

1. データベースが大きすぎてエクスポートにひと苦労
2. データベースのインポートエラー、原因全く分からず
3. FTPソフトがエックスサーバーに繋がらない!
4. トップページ以外の全ページが真っ白!

データベースのエクスポートとインポートに関するトラブルは原因が全く分からなくて本当に大変でした。1番と2番はデータベースに関する話で、解説も長いので、興味ない人やトラブルなく成功しちゃった人は読み飛ばしてください。

トラブルその1:データベースが大きすぎてエクスポートにひと苦労

今回2つのサイトを移転させたのですが、「WWE HOLIC」は開設してまだ1年経ってないこともあり、データベースのサイズが比較的小さく、旧サーバー側からのエクスポートや新サーバーへのインポート作業でいずれもトラブルは発生しませんでした。

まず「WWE HOLIC」データの旧サーバー側(シックスコア)からのエクスポートは、シックスコア管理画面「サーバー管理ツール」内にある「MySQLバックアップ」という機能を利用しました。

シックスコアMySQLバックアップ機能

▲ 「gz形式」を指定して出力するファイルを圧縮させ、「エクスポート実行」ボタンを押すだけ。とてもラクチンで簡単でした。

一方の「りくまろぐ」はデータベースのサイズが巨大なため、

MySQLバックアップ、DB容量超過

容量が超過していると表示されており、「エクスポート実行」ボタンもありません。したがってこの方法でのエクスポートは不可能。

ということで仕方なく「phpMyAdminで直接エクスポート」をすることになりました。

phpMyAdminを使ってのエクスポート自体は何度か経験があるので、やり方は分かっていたんです。ロリポップから引っ越しする時もこの方法だったし。

データベース(MySQL)は複数の「テーブル」で構成されており、各テーブルにはいろんな種類のデータが格納されています。データベースを「収納ダンス」と仮定すると、テーブルは「1つ1つの引き出し」だと思って下さい。

今回「りくまろぐ」のデータベース(タンス)には20個以上のテーブル(引き出し)があったのですが、その中にデータサイズの巨大なテーブルが2つありました

なので今回の作業では3回に分けてエクスポートを実行することに決定。

◆エクスポートファイルその1 … 巨大テーブルその1のみ
◆エクスポートファイルその2 … 巨大テーブルその2のみ
◆エクスポートファイルその3 … 残りの全テーブル

エクスポート自体は特に問題なくスンナリと3回とも成功して終わりました。3つのエクスポートファイル(=SQLファイル)がMacの中に保存されて、さあ次はインポートだぞと。

ところが、インポートが全く上手くいかなかったんです

トラブルその2:データベースのインポートエラー、原因全く分からず

厳密に言うと、巨大サイズのテーブル以外を全部圧縮してまとめた「エクスポートファイルその3」だけは正常にインポート成功しました。

しかし残す「その1」と「その2」はインポート時にエラーが発生。何度やってもダメ。いろいろエクスポート方法を変えてみたけど全てエラーで失敗。

エラーメッセージを見ても意味不明で、いろいろ調べていくうちにボンヤリ分かってきたのは、「これはインポートの問題ではなくて、エクスポートの失敗が原因でインポート失敗してるっぽいな」と。

エクスポートファイルの中に「インポートの命令文」も含まれているのですが、エラーメッセージを見ると、命令文が途中で欠けてしまっているためエラーになってしまっている感じでした。

データが大き過ぎることにより、エクスポートされたファイルの中をチェックしてみると、圧縮形式でエクスポートしたにもかかわらず「データが途中で途切れてしまう」現象が起こっていたのです。

次の手段として考えたのは、巨大テーブルのデータを幾つかに分割してエクスポートする方法

例えばデータが10万件あった時、1回目のエクスポートでは「1から20000まで」、2回目で「20001から40000まで」という風に2万件ずつ5回に分けて、エクスポートするデータ件数を指定し、幾つかのファイルに分割して出力する方法があったはず。

以前にロリポップからシックスコアへ引っ越した時、phpMyAdminでその分割エクスポート方式をやった記憶があったのです。あの時も成功したから今回もそれでいけるはず。

しかし哀しいことに、その方法も今回はできなかった

MySQLバージョン5.0

▲ 「りくまろぐ」のMySQLはバージョンが5.0。バージョン5.0のphpMyAdminには「データを分割してエクスポート」する指定欄が幾ら探してもどこにもない。

ちなみに昨年作成した「WWE HOLIC」のMySQLはバージョン5.5。こちらのphpMyAdminだと分割エクスポートの指定欄がありました。

困り果ててしまい、シックスコアのカスタマーセンターに「エクスポートのエラー」「MySQLのバージョン」「phpMyAdminで分割エクスポート」などなど、何度か電話で問い合わせたところ、いずれも「サポート対象外のため教えられない」的な回答のみ。どうすればええんや…。

で、結果的にどうしたかと言うと、

◆1つのテーブルを圧縮せずにエクスポート
◆インポートは「BigDump」を使った

◆1つのテーブルを圧縮せずにエクスポート

いろいろネットで対策を探しているうち、以下記事に辿り着き、この方法でやれば成功しました。

【参考】[Blog] サーバー移行における「ギガ単位の巨大データベース」の取り扱い(インポート/エクスポート)について。

参考記事にしたがって、シックスコア側でのインポート作業を最初からやり直すことにしました。

※以下で使用するスクリーンショット画像はいずれも「MySQL5.0のphpMyAdmin画面」のものです。他のバージョンだと画面構成や表示内容が多少違う場合があるのでご容赦を。

まずMySQL5.0のphpMyAdminでエクスポート画面を開き、以下の通り設定します。

テーブル指定

まず「エクスポート」欄。最初はエクスポート対象として全てのテーブルが指定されているので、いったん「全選択解除」で指定解除してから、エクスポートする巨大テーブルを1つだけクリック指定します(上の例だと「wp1_posts」)。

phpMyAdminオプション欄

▲ 「オプション」欄は上の画像の通りチェック。最初は「DROP TABLE」うんぬんのところだけチェックが外れているはずなので、念のためチェックを入れておきます(1回目はチェックしてなくても問題ないけど、失敗して2回目以降をする時はチェック入れておかないと多分エラーになる)。

もう1つ、「作成するクエリの最大長」という欄は初期値が50000となってるので、ここを300くらいに少なくしておきます。ここの値が大き過ぎるとインポートの際にエラーとなります。

phpMyAdminファイルに保存欄

▲ ファイルの保存は「圧縮:なし」を指定します。

サイズが小さいテーブル群であれば「zip形式(Windowsの場合)」「gzip形式(Macの場合)」で圧縮してあげたほうが早く済むんです。

巨大サイズのテーブルのほうこそ圧縮してあげたほうが良い気がしますよね。でも実際に圧縮したらインポート失敗し、圧縮しなかったらインポート成功したんです。訳が分からん。

この方法で巨大テーブル2個を別々にエクスポートし、今度はエクスポートファイルを新サーバー側(エックスサーバー)にインポートします。

◆インポートは「BigDump」を使った

エックスサーバーへのインポート作業は、phpMyAdminを使うのではなく、大容量のデータをインポートできるツール「BigDump」を利用しました。

それまで何回やってもエラーだったインポート処理が、圧縮なし方式でエクスポートしてBigDumpでインポートしたら1発で成功しました

「BigDump」の導入方法や使い方などは以下記事を参考にしました。

【参考】大きいサイズのSQLをインポートしてくれる「BigDump」

解説の通り、BigDumpをダウンロードし、データベース情報を入力し、エックスサーバー側にBigDumpをアップロードし、2つのエクスポートファイルを指定してインポート処理し、2つともノーエラーで成功。

11時間以上悩み続けたのが、わずか1時間足らずで成功&終了。呆気に取られちゃいました。

トラブルその3:FTPソフトがエックスサーバーに繋がらない!

今回FTPツールとしてMacアプリの「ForkLift」を採用しました。しかしサーバー側との接続でエラーが多発。使い慣れてないこともあり、エラーの内容がよく分からない。

いろいろ調べていくうちに、どうやら「パスワードが間違ってるらしい」ことに気付きました。

そんなこと言ったって、パスワード間違ってねえべ?

おかしいなーと思って、エックスサーバー契約時に届いたメールの文章を確認してみたのです。

FTP情報

▲ メールには上の通り書かれていました。何回も見直したけどパスワードは間違ってない。

なんでやろ…と首を傾げながらメール文章をジーっと見つめ、やっと自分の犯してたミスに気付いた

FTP情報

▲ コレが原因でした。と書いても誰も分からないよね。

エックスサーバーとの契約が完了して、メールに記載されてた情報を基に初めてエックスサーバーの管理画面にログインし、直後に私はログインパスワードを変更していたのです。

つまりFTPパスワードもメールに記載されてるものではなくなってしまい、私が変更した新しいパスワードになったということを意味するんです。

そりゃパスワードが間違ってるはずだわ、ってことで自分で決めた新パスワードを登録して接続したら、1時間近く悩みまくった苦悩がウソのようにすぐ繋がりました。解決。

トラブルその4:トップページ以外の全ページが真っ白!

サーバー移転の顛末エントリーでも書いたのですが、最初に「WWE HOLIC」の移転が完了した直後、トップページ以外の全ページが真っ白になって、何も表示されていないことに半日ほど気付かず、その間のアクセス数がゼロになるという大失敗を犯してしまいました。

今回の作業手順のうち、⑧の「hostsファイルを変更して新サーバー側のサイト表示を確認する」という作業で、トップページが無事表示されたことで安心してしまい、他のページを全く確認しないままhostsファイルを元に戻しちゃったのがダメダメでした。

他のページを1回だけでも見ておけば、この時点で真っ白になってることに気付けてたし対応も出来ていたんですけどね。油断しちゃいかんですねー。

この原因は「.htaccess」というファイルが上手く設定されてないことにより、トップページ以外の全ページが「404エラー」となって表示されなくなるというものでした。

【参考】WordPressでトップページ以外が表示されない

FTPツール「ForkLift」でエックスサーバー側のファイルを確認したら「.htaccess」ファイルが存在しなかったので、上の参考記事に書かれている通りの内容で「.htaccess」ファイルを自作し、FTPでアップロードしたところ、全ページ真っ白状態は解消されました。

しかし、そんな面倒なことをしなくても、超簡単な方法で対応できます

そのことを「WWE HOLIC」が正常表示になった後で知ったので、2回目の「りくまろぐ」の時は超簡単な方法で対応し、うまくいきました。

hostsファイルを変更し、エックスサーバー側のサイト表示を確認する際、サイトを見るだけじゃなくてWordPress管理画面「wp-admin」にもブラウザでアクセスしましょう

WordPressのパーマリンク設定画面

「設定」の「パーマリンク設定」ページにて「変更を保存」ボタンをクリックするだけでOK。これで「.htaccess」ファイルが生成され、トップページ以外のページも表示されるようになります。もう次からは大丈夫。覚えた。

りくま ( @Rikuma_ )的まとめ

以上、長々と書いてきましたが、今回のシックスコア→エックスサーバー移転で苦悩しまくったトラブル4点についてでした。

サーバーの移転作業だけでなく、初めてレンタルサーバーと契約して自分のウェブサイトを世に送り出す際の移行作業もそうですが、慣れないといろんなことがサッパリ分からないんですよね。

特にエラーが発生した際、エラーメッセージの内容も分からんし、解決方法も分からんし、途方に暮れてしまうと思うのです。私も今回、データベースのインポートが何十回やっても成功せず解決法も分からなかった時は絶望的な気分でした。

今後レンタルサーバーの移転作業などで今回書いたのと同様のトラブルに見舞われた誰かの助けに少しでもなれたら幸いです。

-WordPress
-