「マルチサイト」は1つのサーバー、1つのプログラムで複数のサイトを運営できる便利な機能です。「マルチサイト」で複数のサイトを運用する場合、サブディレクトリ型、サブドメイン型、複数ドメイン型の3つの方法から選びます。どのタイプを選んでも、メンテナンスが楽というメリットがあります。
マルチサイト化は簡単
この、マルチサイト化は簡単な作業で、FTPソフトでWordPressがいんすとーるされているディレクトリにアクセスし、「wp-config.php」に一文加えるだけです。
- define(‘WP_ALLOW_MULTISITE’, true);
この一文を加える場所は、「/* 編集が必要なのはここまでです」の前であれば記述の追加場所に制限はありません。これだけです。あとは、WordPressがかってにやってくれますし、ダッシュボード上での作業になるのでマルチサイト化は難しくありません。問題はマルチサイトとして作ったサイトをひとつにまとめたり、独立させてバラバラにしたりする方法です。インターネット上でずいぶん探しましたが、これといった方法が見つかりませんでした。
シングルサイト化は難しい!
さて、一度マルチサイトにしたサイトをシングルサイトに戻す作業はそう簡単には行きません。ネットで検索すれば子サイトを閉鎖するとか、エクスポートしてインポートするとかありますが、どれもなかなかうまくいきません。データベースを直接編集しようにも、wp_optionに入っているデータが複雑で構造も違うため、知識がかなりないとうまくいきません。私にはできませんでした。それでも、道は拓けるものです。今回、試行錯誤しながら子サイトを取り出した手順を記録しておきます。私は5つのサイトを分離させ、めでたくシングルサイトに戻すことができました。今のところ問題も感じられません。初めての方でもできるように、細かく書きますので少々長くなってしまいますが、ご了承ください。
hostsを使って非公開で作業
これからの作業は自分だけが旧サーバーと新サーバーを見比べながら進めていく作業です。すべて終わるまで世の中の方々には通常通り旧サーバーにアクセスしてもらい、問題なく出来上がったところで新しいサーバーを世に出すという作業です。
やり方は、自分のパソコンの中にあるhostsを使ってアクセス先を切り替えます。
メモ帳を右クリックして管理者権限で実行しファイルを開きます。C:WindowsSystem32driversetcとたどっていき、「すべてのファイルを表示する」にするとhostsというファイルが表示されます。
そのファイルを開いて、最後尾に、新サーバーのIPアドレス、半角スペース、ドメインを書いて保存すれば自分だけ新サーバーにアクセスできます。消せば、旧サーバーです。書いたり消したりを繰り返しながら作業を進めます。
例:×××.×××.×××.× n-hokkaido.com
① 移転先の確保
シングルサイト化をするためには、もうひとつのサーバーが必要です。サーバー移転を同時に行う場合は新サーバーの契約をしますし、そうで無い場合はとりあえず無料のお試しを使ってやります。wpXレンタルサーバーは14日間無料なので、この間に作業を進めていきます。最悪終わらなくても、シングルサイト化に成功してしまえば、SQLデータをダウンロードして後日改めて契約できます。それからのサイト復元の作業は簡単ですので、とにかくマルチサイト化したものをシングルサイト化してしまいます。ここでは、私がおすすめするwpXサーバーを使っての例で説明していきます。
② wpXにWordPressをインストール
さて、仮契約が済んだら、wpXレンタルサーバー にお引越し準備です。wpXの管理画面からWordpressをインストールし、FTPアカウントも取得します。Wordpress用のID・パスワード、FTPの情報が出てきますので、デスクトップの付箋機能を使ったりアナログでメモしたりして忘れないようにします。このあたりは、通常のサイト移転と同じです。
子サイトを独立させるので、子サイトの分だけWordpressを設置する必要があります。wpXは最大10サイトまで設置できます。
③ 自分パソコンの設定
通常のホームページ作成作業と同様に、FTPソフトの設定をします。このあたりは、サーバーの管理画面を見てやれば簡単にできます。まず、メインサイト、または子サイトのひとつを独立させることからやってみましょう。
④ wp-content内のデータをダウンロード
気をつけたいのが通常の移転のようにwp-content内のデータを丸ごとダウンロードしてアップロードといかないところです。いくつものサイトがまとめられて保存されていますので、必要なものを選んでダウンロードします。
①テーマファイル wp-content/themes
②プラグイン wp-content/plugins
③画像ファイル /wp-content/blogs.dir/サイト番号/files/
④Wordpressフォルダ以外に自分で保存したデータ。
①、②は共有していたものなので新しいサイトで必要なものをダウンロードします。
さて、問題は③の画像ファイルです。これはマルチサイト化した時にblogs.dirフォルダで自動的に仕分けられているのです。ブログIDを参考にしたり、実際にファイルを開いたりしてどのフォルダがどの子サイトのものなのか把握してfiles下のデータをダウンロードします。
④その他、自分で別のディレクトリに保存したものがあれば忘れずにダウンロードしておきます。私は公開している中学社会科問題集のデータ(wordとpdf)をmondaiというフォルダを作って保存していたので忘れるところでした。
⑤ 新サーバーにテーマをアップロード
私の場合、テーマはsimplicity(現在は【賢威】 )を使い、カスタマイズは子テーマで運用しています。FTPソフトで先にこのデータを新サーバーにアップロードします。
その際、子テーマフォルダのfunctions.phpのパーミッションを555などにしておかないと上手くいきません。
理由は、wordpressのダッシュボードにアクセスした際に勝手に親テーマのfunctions.phpが編集され、アクセスできなくなってしまうのです。原因はわかりませんが、555にしておけばwordpressに勝手に編集されることがなくなるので、問題なく子テーマを使えます。
余談ですが、シングルサイト化する機会にテーマを見直すと一石二鳥です。私はアクセス数増加のために、サーバーとテーマを変えてWordPressの高速化を目指しました。
1、サーバーをWordPress専用の【wpXレンタルサーバー】
2、テンプレートをSEOテンプレート【賢威】
3、バナーを自分で「凄いバナー」が作れる!【バナープラス】
最初にお金はかかりましたが、半年で投資した金額以上の収益増で成果を実感できました。結構な金額なので全てやるには勇気がいりますよね。まずはサーバーから変えてみてはいかがでしょうか。
⑥ プラグインのアップロード&有効化
JetpackとAkismetは、外部のサービスとリンクしているためドメイン正式移行後に有効化します。その他の機能も、必要に応じて有効化していきます。当時私が使っていたプラグインは下記の通りです。今はもう使っていないものがたくさんありますが、参考までに掲載しておきます。「データベース移転」は後で行いますので、有効化だけしておいても大丈夫です。
・contact_form(データベース移転のみで追加設定不要)
・meteor-slides(データベース移転後、スライドの設定必要)
・wp-dtree-30 (カテゴリを折りたたむやつ・設定不要)
・jetpack(ドメインの設定変更後でないと使えない。)
・count-per-day(データベース移転でOK、だがデータがでかい)
・google-sitemap-generator(インストールするのみでOK)
・Default Thumbnail Plus (設定不要)
・autoptimize (有効化しておくだけ)
⑦ ダッシュボードから設定(第1弾)
プラグイン有効化をしたついでに影響の大きい「設定」も先に変えておきます。
①パーマリンク
旧サーバーで設定していたパーマリンクと同じ形式にします。この辺もすべてwp_optionが移行できればやらなくて良い作業なんですけどね・・・。
②メディア設定
デフォルトの投稿サイズを変更している方は変えておきます。
その他、細かい設定は最後にまとめてやります。
⑧ 画像データのアップロード
過去の画像をアップロードしてしまいましょう。シングルサイトになるので子サイトのfilesの下にあったデータもwp-content/uploadsの下に置くことになります。
uploadsフォルダが未生成の場合は自分で作るか、ダッシュボードからメディアにアクセスし、適当に画像をひとつアップロードします。するとフォルダが出来上がります。
この作業はどの段階でやっても構いませんが、私はこのタイミングでやりました。
⑨データベースから記事や設定を取り出す
通常の移転作業なら、丸ごとエクスポートして、新しいサーバーにインポートできるのですが、マルチサイトからシングルサイトに戻す作業はここが一番のカギになります。
まずは旧サーバーの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 にチェックをつけるくらいです。
▶ スポンサードリンク
⑩ 子サイトのデータベースを書き換える
マルチサイトからシングルサイトへ移行する際の勘所。とても重要な作業です。
子サイトの画像は、先ほどのようにblogs.dir/サイト番号/filesの中に入っています。データベースを見てみるとfiles以下の記述の部分があります。おそらく、マルチサイトのwordpressの機能で頭にサイトアドレスが自動で付与されて、サイトアドレス/files/年/月/ファイルとなるようです。シングルサイトに移行すれば、サイトアドレス/wp-content/uploads/年/月/ファイルとなりますので、変更となるのはfilesの部分になりますよね。
そこで、ダウンロードしたSQLファイルをTeraPadなどで開いて(メモ帳は×)“files”を置換機能で一気に”wp-content/uploads”に変えます。
文頭から文末まで漏れなく置換をします。親サイトの移転の場合は特にすることはありません。
⑪ 新サーバーにデータベースをインポート
いよいよ大詰めです。今度は新サーバーのコントロールパネルからphpmyadminにログインをして、先ほどエクスポートしたファイル(子サイトの場合は置換して上書き保存)をインポートします。まずは、新しく立ち上げたWordPressのデータベースを見つけてください。
① インポートしたいデータベースをクリックして、重複する予定のものを削除します。ドキドキしますよね。でも大丈夫。新サーバーですから失敗しても影響はない作業ですよね。失敗しても元のサイトは生きています。
・commentmeta
・comments
・links
・postmeta
・posts
・terms
・term_relationships
・term_taxonomy
② インポートを選択しファイルを選択して一番下にある実行をクリックします。
⑫ データベース名の変更
インポートに成功したら、ひとつずつデータベースをクリックし、「操作」で名前を変更します。先ほど削除したものと同じ名前にしていく作業です。
やり方自体は、分かれば簡単です。触る場所は、テーブルオプションの中の、「変更後のテーブル名」のところです。
wp_****_postmeta
wp_****postmeta
などとなっているので、いらない部分を削除してから実行を押します。
するとwp_postmetaなどに名前が変わり、先ほど削除したデータベース名と同じになっているはずです。
⑬ シングルサイト化したサイトへアクセス!
さあ、いよいよ新しく移転したサイトへアクセスしてみましょう。既に開いている場合は更新をします。記事や画像が表示されていれば成功です。若干感じが違うのはウィジェットなどoptionに入っていたデータなどの一部が引き継がれなかったためです。そこはこれから手動でやっていく作業になります。
⑭ ユーザーの管理
ユーザーを複数登録している場合は新規に登録しなおすか、旧サイトのダッシュボードからエクスポートして、新サイトにインポートします。私の場合は、新規登録したほうが手っ取り早かったのでインポートはしませんでした。
⑮ 投稿者を再設定
管理画面の投稿一覧から一気に設定します。なまら北海道だべさの記事は666件(昨年度大幅に見直して半分にしたので)でやってみます。すべて一括でいけるかな・・・
だめでした・・・。
100件まで減らしたところ、時間はかかり
「Error 503 Service Unavailable」
仕方がないので50にしたところ、今度は問題なくいけました。100でもいけそうな感じでしたが、五分五分といったところです。やりかたは、表示されているすべての記事にチェックして・・・
一括操作のタブを編集にして適用をします。
そして、「更新」ボタンを押せば終わりです。これを繰り返します。サーバーが耐えられれば一括で行けるんですけどね。
⑯ 細かい設定
ここまできたら、ウィジェットなどの整理をします。hostsを変更し旧サーバーのテーマのカスタマイズやウィジェット画面を開き、別ウインドウにします。そして、hostsを変更し、新サーバーの同じ画面を開き、左右に並べます。
旧サーバーのものをコピーしては、新サーバーの同じ設定の場所に貼り付けたり、見比べてチェックをいれたりという作業です。地味ですが、これが終わればほとんど完了ですし、思ったほどたくさんは無いはずですので漏れがないように頑張ります。
マルチサイトからシングルサイトに一括変更できないのがここの部分ですので、諦めてがんばりましょう。
▶ スポンサードリンク
⑰ ドメインの設定変更
さぁ、いよいよドメインの設定変更です。ドメイン管理会社のコントロールパネルに行き、ネームサーバーの変更をします。「ns1.wpx.ne.jp」などで、wpXやXサーバーはサーバー基本情報で、さくらインターネットはQ&Aから確認することができます。
ちなみに、私は十数年ずっと格安ドメイン取得サービス─ムームードメイン です。
⑱ jetpackやAkismetの設定。
しばらくすると、hostsの設定なしに新サーバーにアクセスされるようになります。見た目ではわからないので、新しい記事を新サーバーでアップしておくと良いと思います。ちなみに、WLWなども問題なく使えるはずですが、ユーザー名やパスワードが変わっている場合は再設定が必要です。うまくいかない場合は、wpxの設定で「XML-RPC APIへのアクセス制限」を解除してみてください。
さて、ドメイン移行が落ち着いたらスパム対策のakismetを有効にします。APSキーは旧サーバーで使っていたものと同じものが使えますし、何か問題があればこの機会に再取得すると良いと思います。
続いてJetpackの設定です。これも同様にWordpress.comのIDで有効化します。これについてはここでは詳細を割愛しますが、これこそ「XML-RPC APIへのアクセス制限」を解除しないと使えません。有効化したらphotonを有効化しておきます。
⑲ 高速化の手続き
wpXを使っている方は「mod_pagespeed設定」を有効にします。そして、.htaccessの編集を開き、高速化の手続きをします。これも別の記事で紹介しますが、simplicityを使っている人は、テーマフォルダの中にあるhtaccess.txtを開き、コピーしたものを追記して保存すればOKです。
simplicityを使っていない方も使えますので、参考までにテーマをダウンロードしてみてはいかがでしょうか。
以上で、マルチサイトをシングルサイトにして新サーバーに移転する作業は終了です。お疲れさまでした。