WordPress Stickers Everywhere / teamstickergiant
先日、Wordpressで構築していた当ブログを海外サーバーのBluehostからsixcore(シックスコア)に移行しました。
sixcoreは多くのブロガーの方々が使っており、移行に関するエントリーもいくつか書かれているのですが、私はまたそれとは違う症状で悩まされました…。
今回はサーバー移行の手順と、私がつまづいたポイントについて書いておきたいと思います。
WordPressは、大きく分けて2つのものでできている
移行の前に、Wordpressが何でできているのか超簡単に把握しておきましょう。
(なお、私自身もさほど詳しいわけではないので、間違いがあれば指摘をお願いします)
WordPressでできているブログサイトは、大きく分けて「PHPファイル(枠組み)」と「MySQLのデータ(中身)」でできています。
PHPファイルは、例えばテンプレート、プラグインといったWordpressの枠組みを形作っているものです。
MySQLとは、データベースの名前。このデータベースの中に、今まで更新したブログ記事の文章などが含まれています。
WordPressは、前者のPHPファイルでテンプレートやプラグインなどの外枠をつくり、その中に表示するコンテンツはMySQLのデータから取得して表示しています。
よって、移行の際にはこの枠を作っているPHPファイルと、中身を作っているMySQLのデータの両方を新しいサーバーに移動する必要があるのです。
WordPressの移行手順
それでは、具体的手順に入っていきましょう。
…といっても、ここは先人の方々が移行手順をブログ記事にしてくれています。
これらの記事を見れば、ほぼ迷うことなく移行を完了できるでしょう。
では、これらの記事を参考にしつつ移行していきましょう。
【1. sixcoreの申し込み】
まずは、移行先であるsixcoreに申し込み。私も含む個人ブロガーであれば、S1
プランで十分でしょう。
クレジット決済の場合は2週間の試用期間が適用されない(いきなり本契約になる)ため、試用したい場合はそれ以外を選びましょう。
私の場合は、しばらく使う自信があったのでクレジットを選びました。
【2. PHPファイルとMySQLデータをエクスポート】
次に、先程説明した外枠のPHPファイルと、中身のMySQLデータを元のサーバー(私の場合はBluehost)からエクスポートし、ローカルに保存します。
まずはPHPファイルから。これはFTPという方式を使います。
FTPが使用できるソフト(私の場合はCyberduck)を使い、サーバーに接続してpublic_htmlフォルダ以下のファイルをごっそりダウンロードしてきてください。
次にMySQLのデータ。
これには、phpMyAdminというツールを使います。
Bluehostの場合は、cPanel(管理画面)にアクセスし、phpMyAdminを選択。
全てのデータをダウンロードします。
先にsixcoreへの移行を果たした@OZPA 氏によると、
ここで「information_schema」を含めた全てのデータベースをダウンロードしてしまうと、アップロードする段階で上手くいきませんでした。
DLするのはWordPressのデータベースのみでおk!
だと思う。
(私のような初心者におくる!!WordPressブログをsixcoreサーバーに移転した際の覚え書き!!より)
とのことなのでご注意を。私の場合も、「information_schema」は無しでうまくいきました。
【3. sixcoreでドメイン設定】
次に、sixcoreでドメイン(私ならushigyu.net)の設定を行います。
設定のための認証方法にはWhois認証、Web認証、メール認証、CNAME認証とあるのですが、一番分かりやすいメール認証を選んでおきました。
これは、ドメインのメールアドレス(私の場合なら、例えばadminアットマークushigyu.net)にメールを送り、そのアドレスに送られたIDを入力して認証を行うというものです。
メールアドレスに送られてきた認証IDを入力しここはサクっと完了。
【4. ドメインの動作確認】
次に、新しいサーバーで移行したドメイン(私の場合はushigyu.net)がちゃんと動作するか確認します。
hostsファイルを書き換えて移転先サーバーを指定することで、動作確認をすることができます。詳しくは以下の記事をどうぞ。
sixcoreの場合は動作確認URLなるものが用意されているため、これを使って確認することもできます。
ここに表示されているURLにアクセスして、表示されればとりあえずOK。
【5. sixcoreで、MySQLのユーザーを作成】
移行先であるsixcoreで、MySQLデータベースにアクセスできるユーザーを作成します。
詳細は、sixcoreのマニュアルがあるのでその通り登録しましょう。文字コード(UTF-8、EUC-JPなど)は移行元と移行先で同じものにしておいてください。でないと文字化けなどの原因となります。
【6. PHPファイルのアップロード&データのインポート】
ここまでできたら、新しいサーバーにPHPファイルとMySQLのデータをアップします。
2.で使ったFTPクライアントを使って、sixcoreのpublic_html以下にダウンロードしたPHPファイルをアップロードしてください。
次にこちらも2.で使用したphpMyAdmin(今回はsixcore側のもの)を使い、ダウンロードしたデータを新しいサーバーにインポートします。
さらに、移行元と移行先でデータベース名やユーザー名が異なる場合がほとんどのため、設定ファイルを書き換える必要があります。
FTPクライアントでwp-config.phpをダウンロードし、DB_NAME、DB_USER、DB_PASSWORD、DB_HOSTを5.で設定した新サーバーのものに書き換えてください。
(DB_HOSTはmySqlXX.sixcore.ne.jpというアドレスのもの)
【7. ネームサーバーの設定変更】
全て終えたら、最後にネームサーバーを変更します。
Bluehostでは、以下の部分をns1.sixcore.ne.jp、ns2.sixcore.ne.jpに変更すればOK。
これで、数時間〜2日くらい待てば、新しいサーバーに移行が完了します。
ただ、これだけではうまくいかないポイントがあったのです。。。
以下は、私の場合にひっかかったところの解説です。個々の状況によって対策は異なると思いますので、わからない場合は識者やサポートに問い合わせることをオススメします。
つまづいたポイント
上記の手順で移行完了!…といきたいところだったんですが、移行後のブログが何かおかしい。
トップページやいくつかの記事はきちんと表示されるのですが、一部の記事が表示されないのです。
表示されない記事のリンクをクリックすると、なぜかダウンロードのダイアログが表示され、謎のPHPファイルがダウンロードされてしまうのです。
iPhoneから見るとこんな感じ。
意味がわからん。。。ということでsixcoreのサポートに問い合わせてみました。
いくつかのやりとりの結果、PHPのバージョンが移行前後で違うのでは?ということに。
そこで、sixcoreのPHPバージョンを最新にしてみることに。
sixcoreのサーバー管理ツールの「PHPバージョン切替」から、PHPバージョンを更新してみます。
すると…今まで表示されなかった記事がちゃんと表示された!やった!
でも、なぜかトップページ(https://ushigyu.net/)だけがエラーページになってしまう…なぜ?
なぜだかわからずマニュアルを見ていると、こんな記述が。
http://sample.com/ の様にファイル名を指定しないURLでアクセスした場合、該当ディレクトリから下記の優先順でファイルが自動的に表示させることができます。
index.htm
index.html
index.cgi
index.php
index.shtml
例えばお客様にて「index.php」ファイルをアップロードされても、弊社のデフォルトファイル「index.html」を削除しない限り、「index.html」が優先して表示されるのでご注意ください。
(マニュアル/マルチドメイン対応フルマネージド専用レンタルサーバー シックスコア(sixcore)より)
私のファイル構成を見てみると、index.phpとindex.htmlが両方存在していました。
つまり、本来表示されるべきindex.phpよりも、エラーページを表示するindex.htmlが優先して表示されてしまっていたのです(><)FTPクライアントでindex.htmlを削除し、再度トップページにアクセスすると…ちゃんと表示されました!これでなんとかかんとか移行完了。ふう。。。
あとがき
sixcoreのサポートはメール・電話ともにとても丁寧で、とても助かりました。感謝。
こちらの状況や、今までにやったことをきちんと伝えるようにすると、サポート側も回答がしやすくなるはずです。
サーバー移行はとても神経を使いますが、某プロブロガー曰く「まずはインフラを整備しろ。話はそれからだ」とのこと。
ブログを本格的にやりたい、あるいは今のサーバーがイマイチ、という方は勇気を出して移行してしまうのが良いと思います!