現役プログラマのWordPressカスタマイズ相談

WordPress(ワードプレス)のお悩み、うまくいかなくてお困りなこと、不具合調査、新規制作依頼まで、ウェブアプリケーションエンジニアがあなたをサポートします。

ロリポップからエックスサーバーへのWordPress移行

ロリポップのエコノミープランからエックスサーバーへの移行作業の代行を行いました。
f:id:jsaz:20161221234441p:plain
エックスサーバーのサーバー機能はこちら


記事数が12,000件程度、画像ファイル11,000件と結構膨大なデータ量です。
記事に関連する情報を保持しているwp_postmetaテーブルの件数は70,000件以上ありました。

今回はエクスポート-インポートするような移行方法ではなく、phpMyAdminを使いmysqlのテーブルデータを移行させる方法で対応します。

記事数や画像数が多くても、低リスクで移行する手順を載せました。

既存のWordPressの情報を確認する

見た目でわからないものがいくつか存在します。

移行後に全てのページを確認することは現実的ではありません。
記事数や画像ファイル数を予め調べておくのが良いでしょう。

データ数の調べ方は下記SQLを実行します。

SELECT post_type, COUNT(*) FROM `wp_posts` GROUP BY post_type
post_type COUNT(*)
attachment 10418
news 11113
page 15
post 621

post_typeごとに件数を表示してくれます。
WHEREでpublicのみとか日付を指定して以降に必要なデータだけ抜き出すことも可能です。
投稿タイプごとの件数を取得したいときはこのSQL文を参考にしてください。


ここで記事が◯件、画像が◯件あるということを把握することができます。
それでは次からは移行作業です。

WordPressの新規インストール

エックスサーバーは自動インストール機能がありますが、今回は利用しませんでした。


新しいWordPress用のDBを新しく作成します。
mysqlのデータベース名とユーザー名の文字数制限があるため、番号的なものになってしまいわかりやすいものは作れないんですね。。。

テーマ、プラグインのインストール

ロリポップ側のwp-content/themes に利用中のテーマがあるので、そのテーマフォルダを移行します。

プラグインはファイルごと移行してもよかったのですが、アップデートのアラートが出ているものが複数あったのでダッシュボードを見比べながらインストールします。


それぞれのプラグインの設定も合わせていきます。
プラグインが数個であればテーブルを調べて、そのまま移行できたのですが、プラグインの数が多かったので手作業で行いました。


ちなみに、プラグインが利用しているテーブルで多いものは
wp_options テーブルです。
option_nameにプラグインの略称名が入っていることが多いです。
略称名って予測するのが難しいのですが、ショートコードタグやプラグイン名、プラグインフォルダ名などを調べると見つけやすいです。


ここまで完了したらWordPressの"箱"の用意はできました。
あとはデータを移行します。

カテゴリと記事データの引き継ぎ

カテゴリの移行に必要なデータは以下の3テーブルです。

wp_terms
wp_term_relationships
wp_term_taxonomy

インストール時にデフォルトで作られる「未分類」などが邪魔なので、
テーブルを一度削除してからインポートすることをおすすめします。


削除が怖い方は名前の変更でも良いかもしれません。


つづいて記事データ、2つのテーブルに情報があります。

wp_posts
wp_postmeta

こちらもデフォルト(サンプル)記事などに気をつけながらインポートします。
URLが変更される場合は、一括置換を行います。


シリアライズといってプログラムでデータを加工して保存している箇所があるかもしれません。
旧サイトのドメイン名で検索.comや.jpを除いたワードでも置換してください。


今回は対象外だったのですが、コメントの移行が必要な方は、以下2つのテーブルもインポートしてください。

wp_comments
wp_commentmeta

画像ファイルを移行

画像ファイルの物理ファイルをロリポップからエックスサーバーへコピーし移動させます。

ロリポップのエコノミープランはSSH接続できないのでzipなどへ圧縮できず1つずつダウンロードする必要があり、大変しんどかったです。。。
ダウンロードしたファイルはローカルで圧縮し、Filezillaを使いエックスサーバーのwp-content/upload/2016(←2016年の場合)へアップロードします。


同一サーバーの場合はcpコマンドやscpコマンドが使えたんじゃないかと思います。

移行先サイトの確認

ダッシュボードとサイトの両方で確認を行います。f:id:jsaz:20161221234441p:plain
f:id:jsaz:20161221234157p:plain
チェックするポイントはコチラ↓


<ダッシュボードで確認すること>
・カテゴリ一覧は問題ないか
・記事が想定件数入っているか
・適当に2−3件の記事詳細を見て問題ないか(カスタムフィールドやカテゴリ等)
・同じく固定ページも確認
・同じく画像も確認

<サイト側で確認すること>
パーマリンクがうまくいっているか
・記事内の文字や画像は表示されるか
・ページごと(カテゴリ一覧、記事、固定ページ等)の表示が問題ないか

これくらいは移行直後に確認する必要があります。
個別でレイアウトやソース等は、記事更新時に確認していくのが効率的だと思います。



今回は10,000件xサムネイル数で30,000〜40,000ファイルの画像移行にとても時間がかかりました。
それでも開始から5-6時間で作業は完了しました。


ありがたいことにワードプレスのサーバー移行作業代行依頼のご相談は1-2ヶ月に1度のペースでいただいております。
サーバーの設定やブログの状態、記事・画像数によって費用は異なってきますので、まずはお問い合わせください。

他にもテーマやプラグインなどのご相談も承っております。
ワオミー・ココナラよりお問い合わせください。