WordPressのマルチサイトの子サイトを独立させてシングルサイトへ戻す方法

single

 Wordpressで長年マルチサイトを運用してきましたが、この度wpXサーバーへのお引越しを決め、シングルサイトに戻すことにしました。

最大の理由!サーバーの速度を比較した結果

 理由はホームページの閲覧速度の改善です。画面をキャプチャ動画で撮影したものをご覧ください。この速度の差はかなりのものではないでしょうか。時間帯や閲覧者の環境にもよりますが、1秒でも早くコンテンツを表示したいということを考えればこの差はかなりのものと思われます。

 さて、一度マルチサイトにしたサイトをシングルサイトに戻す作業はそう簡単には行きません。ネットで検索すれば子サイトを閉鎖するとか、エクスポートしてインポートするとかありますが、どれもなかなかうまくいきません。データベースを直接編集しようにも、wp_optionに入っているデータが複雑で構造も違うため、知識がかなりないとうまくいきません。私にはできませんでした。それでも、道は拓けるものです。今回、試行錯誤しながら子サイトを取り出した手順を記録しておきます。私は5つのサイトを分離させ、めでたくシングルサイトに戻すことができました。今のところ問題も感じられません。初めての方でもできるように、細かく書きますので少々長くなってしまいますが、ご了承ください。

◎作業の基本の確認 hosts

 これからの作業はドメインを変更せずに移転するため、自分だけが旧サーバーと新サーバーを見比べながら進めていく作業です。すべて終わるまでは、世の中の方々には通常通り旧サーバーにアクセスしてもらいますが、自分だけはまだ世に知らされていない新サーバーにアクセスします。問題なく出来上がったところで世に出すという作業です。

 さて、それをどうやってやるかといいますと、自分のパソコンの中にあるhostsファイルでアクセス先を切り替えます。メモ帳を右クリックして管理者権限で実行し、C:\Windows\System32\drivers\etcとファイルの場所を指定していきます。そして、「すべてのファイルを表示する」にするとhostsというファイルが表示されます。その最後尾に、新サーバーのIPアドレス、半角スペース、ドメインを書いて保存すれば新サーバーにアクセスできます。消せば、旧サーバーです。書いたり消したりを繰り返しながら作業を進めます。

例:×××.×××.×××.× n-hokkaido.com

1、移転先の確保

 サーバー移転を同時に行う場合は新サーバーの契約をしますし、そうで無い場合でも無料お試しで新しいサーバーを用意した方が作業が楽です。私の場合はwpXレンタルサーバー エックスサーバー への乗り換えを同時に考えていたので、新サーバーにそのまま移転しました。比較検討も兼ねていたので、先ずは、wpXレンタルサーバー エックスサーバー のお試しに契約することから始めます。14日間無料なので、この間に作業を進めていきます。最悪終わらなくても、シングルサイト化が成功してしまえば、SQLデータをダウンロードして後日改めて契約できます。それからのサイト復元の作業は簡単です。とにかく、マルチサイト化したものをシングルサイト化してしまいます。本当にお試し期間の最後の最後までどっちにするか迷いました。

 どちらにしても基本的な作業は同じなので、便宜上最終的に決定したwpXレンタルサーバー という設定で話を進めていきます。今となってはエックスサーバーにしておけばよかったかなと少しだけ思うところもありますが…。もちろん失敗したとまでは思わないのですが、それについてはまた別の機会に…。

2、wpXにWordPress新規インストール

 さて、仮契約が済んだら、wpX の機能を使ってお引越し準備です。wpXの管理画面からWordpressをインストールし、FTPアカウントも取得します。Wordpress用のID・パスワード、FTPの情報が出てきますので、デスクトップの付箋機能を使ったりアナログでメモしたりして忘れないようにします。

3、自分パソコン(ローカル)の設定

 通常のホームページ作成作業と同様に、FTPソフトの設定をします。

4、wp-content内のデータをダウンロード

 気をつけたいのが通常の移転のようにwp-content内のデータを丸ごとダウンロードしてアップロードといかないところです。そこで、焦らずに次のものをダウンロードします。

①テーマファイル wp-content/themes

②プラグイン wp-content/plugins

③画像ファイル /wp-content/blogs.dir/サイト番号/files/

④Wordpressフォルダ以外のデータ。

 注意が必要なのは③です。子サイトの画像データはすべてblogs.dirの該当するブログIDのフォルダの中にあるfilesフォルダの中に入っています。 親サイトの場合は特に変更は無く、wp-content/uploadsに入っています。

ファイル数が多い時は、サーバーのコントロールパネルからZIP圧縮などでやることができれば超早くダウンロードできます。また、htmlページは設置できないようですが、画像ファイルなどを別のフォルダに保存している人は、そこも忘れずに移転します。私は公開している中学社会科問題集のデータ(wordとpdf)を忘れるところでした。

5、新サーバーにテーマファイルをアップロード

 私の場合、テーマにsimplicityを使い、カスタマイズは子テーマで運用しています。FTPソフトで先にこのデータを新サーバーにアップロードします。その際、子テーマフォルダにfunctions.phpを置く場合、パーミッションを555などにしておかないと、wordpressのダッシュボードなどにアクセスした際に勝手に親テーマのfunctions.phpを追記してアクセスできなくなってしまうのです。原因はわかりませんが、555にしておけばwordpressに勝手に編集されることがなくなるので、問題なく子テーマを使えます。

6、プラグインのアップロード&有効化

 私のサイトで利用しているものは次のものです。jetpackとAkismetは、外部のサービスとリンクさせるため、ドメイン正式移行後に有効化します。アップロードしたら、新サイトのダッシュボードにアクセスします。

hostsファイルで新サーバーにアクセスします。

・contact_form(データベース移転のみで追加設定不要)
・meteor-slides(データベース移転後、スライドの設定部分のみ変更必要)
・wp-dtree-30 (カテゴリを折りたたむやつ・設定不要)
・jetpack(便利な機能がたくさんだが、ドメインの設定を変えないと使えない。)
・count-per-day(データベース移転でデータ継承、だがデータがでかい)
・google-sitemap-generator 最新版はインストールするのみでほぼOK
・Default Thumbnail Plus…Auto Post Thumbnailよりいい!
・autoptimize 有効化しておくだけでcssなどの最適化

WLWで投稿すると画像が大量に生成される謎解消
 このサイトはSimplicityというテーマを使い、Windows Live Writerを使って記事を更新しています。非常に快適で問題...

7、そのまま「設定」へ(1回目) 

 プラグイン有効化をしたついでに影響の大きい「設定」も先に変えておきます。

①パーマリンク

旧サーバーで設定していたパーマリンクと同じ形式にします。この辺もすべてwp_optionが移行できればやらなくて良い作業なんですけどね・・・。

②メディア設定

余計なサイズのファイルがたくさん生成されるのが嫌なので、中サイズ・大サイズを0に設定しています。

その他、細かい設定は最後にまとめてやります。

8、画像データのアップロード

 どの段階でやってもいいのですが、アップロードしてしまいましょう。シングルサイトになるので、子サイトもwp-content/uploads以下になります。uploadsフォルダが未生成の場合は自分で作るか、ダッシュボードからメディアにアクセスし、適当に画像をひとつアップロードします。するとフォルダが出来上がります。

9、データベースにアクセスし、記事や設定を取り出します。

 通常の移転作業なら、丸ごとエクスポートして、新しいサーバーにインポートできるのですが、マルチサイトからシングルサイトに戻す作業はここが一番のカギになります。

まずは旧サーバーのphpmyadminにログインし、次のファイルをエクスポートします。

エクスポートするときには、

wp_*****ブログID_commentmeta
wp_*****ブログID_comments
wp_*****ブログID_links
wp_*****ブログID_postmeta
wp_*****ブログID_posts
wp_*****ブログID_terms
wp_*****ブログID_term_relationships
wp_*****ブログID_term_taxonomy

を選択します。ブログIDは画像データのあったフォルダの番号と同じです。エクスポートについての詳細は記載しませんが、注意点としてはDROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT にチェックをつけるくらいです。

10、子サイトの場合はデータの置換が必要

 マルチサイトからシングルサイトへ移行する際の勘所。ここもでしょうかね。

子サイトの画像は、先ほどのようにblogs.dir/サイト番号/filesの中に入っています。データベースを見てみるとfiles以下の記述の部分があります。おそらく、マルチサイトのwordpressの機能で頭にサイトアドレスが自動で付与されて、サイトアドレス/files/年/月/ファイルとなるようです。シングルサイトに移行すれば、サイトアドレス/wp-content/uploads/年/月/ファイルとなりますので、変更となるのはfilesの部分になりますよね。なので、ダウンロードしたSQLファイルをTeraPadなどで開いて(メモ帳は×)“files”を置換機能で一気に”wp-content/uploads”に変えてしまいます。文頭から文末まで漏れなく置換をお願いします。親サイトの移転の場合は特にすることはありません。

11、新サーバーにデータベースをインポート

 いよいよ大詰めです。今度は新サーバーのコントロールパネルからphpmyadminにログインをして、先ほどエクスポートしたファイル(子サイトの場合は置換して上書き保存)をインポートします。

image

①インポートしたいデータベースをクリックして、重複する予定のものを削除。

・commentmeta 
・comments 
・links 
・postmeta 
・posts 
・terms 
・term_relationships 
・term_taxonomy

②インポートを選択しファイルを選択して一番下にある実行をクリックします。

image

12、データベース名の変更

 インポートに成功したら、ひとつずつデータベースをクリックし、「操作」で名前を変更します。先ほど削除したものと同じ名前にしていく作業です。

image

やり方自体は、分かれば簡単です。触る場所は、テーブルオプションの中の、「変更後のテーブル名」のところです。wp_****_postmetaやwp_****postmetaなどとなっているので、いらない部分を削除してから実行を押します。するとwp_postmetaなどに名前が変わり、先ほど削除したデータベース名と同じになっているはずです。

13、シングルサイト化されたサイトへアクセス!

 さあ、いよいよ新しく移転したサイトへアクセスしてみましょう。既に開いている場合は更新をします。記事や画像が表示されていれば成功です。若干感じが違うのはウィジェットやoptionに入っていたデータなど引き継がれなかった設定があるためです。そこはこれから手動でやっていく作業になります。

14、ユーザーの管理

 ユーザーを複数登録している場合は新規に登録しなおすか、旧サイトのダッシュボードからエクスポートして、新サイトにインポートします。私の場合は、新規登録したほうが手っ取り早かったのでインポートはしませんでした。

15、投稿者を再設定。

 管理画面の投稿一覧から一気に設定します。なまら北海道だべさの記事は666件(昨年度大幅に見直して半分にしたので)でやってみます。すべて一括でいけるかな・・・

だめでした・・・。

100件まで減らしたところ、時間はかかり

「Error 503 Service Unavailable」

image

 仕方がないので50にしたところ、今度は問題なくいけました。100でもいけそうな感じでしたが、五分五分といったところです。やりかたは、表示されているすべての記事にチェックして・・・

image

一括操作のタブを編集にして適用をします。

image

作成者のタブを既存のユーザーから選択します。このとき、ブログ上の表示名をプロフィール設定で先に変更しておくと良いのかもしれません。

image

そして、「更新」ボタンを押せば終わりです。これを繰り返します。サーバーが耐えられれば一括で行けるんですけどね。

15、細かい設定

 ここまできたら、ウィジェットなどの整理をします。hostsを変更し旧サーバーのテーマのカスタマイズやウィジェット画面を開き、別ウインドウにします。そして、hostsを変更し、新サーバーの同じ画面を開き、左右に並べます。旧サーバーのものをコピーしては、新サーバーの同じ設定の場所に張り付けたり、見比べてチェックをいれたりという作業です。地味ですが、これが終わればほとんど完了ですし、思ったほどたくさんは無いはずですので漏れがないように頑張ります。マルチサイトからシングルサイトに一括変更できないのがここの部分ですので、諦めてがんばりましょう。

16、ドメインの設定変更

 さぁ、いよいよドメインの設定変更です。ドメイン管理会社のコントロールパネルに行き、ネームサーバーの変更をします。「ns1.wpx.ne.jp」などで、wpXやXサーバーはサーバー基本情報で、さくらインターネットはQ&Aから確認することができます。

17、jetpackやAkismetの設定。

 しばらくすると、hostsの設定なしに新サーバーにアクセスされるようになります。見た目ではわからないので、新しい記事を新サーバーでアップしておくと良いと思います。ちなみに、WLWなども問題なく使えるはずですが、ユーザー名やパスワードが変わっている場合は再設定が必要です。うまくいかない場合は、wpxの設定で「XML-RPC APIへのアクセス制限」を解除してみてください。

 さて、ドメイン移行が落ち着いたらスパム対策のakismetを有効にします。APSキーは旧サーバーで使っていたものと同じものが使えますし、何か問題があればこの機会に再取得すると良いと思います。

 続いてJetpackの設定です。これも同様にWordpress.comのIDで有効化します。これについてはここでは詳細を割愛しますが、これこそ「XML-RPC APIへのアクセス制限」を解除しないと使えません。有効化したらphotonを有効化しておきます。

18、高速化の手続き

 最後に、wpXの設定画面を開き、「mod_pagespeed設定」を有効にします。そして、.htaccessの編集を開き、高速化の手続きをします。これも別の記事で紹介しますが、simplicityを使っている人は、テーマフォルダの中にあるhtaccess.txtを開き、コピーしたものを追記して保存すればOKです。simplicityを使っていない方も使えますので、参考までにテーマをダウンロードしてみてはいかがでしょうか。

 以上で、マルチサイトをシングルサイトにして新サーバーに移転する作業は終了です。お疲れさまでした。

スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク