複数の単体WordPressサイトを、1つのマルチサイトに統合してみました

システム開発

先日、やるやる言っていた単体のワードプレスサイトの管理について

定期的なバージョンアップなどメンテナンスをそれぞれのサイトで行うのは面倒!

と思い、本日各単体サイトを1つに統合してみました。(移行元がマルチサイトでも問題無しです。マルチサイトからマルチサイトもできます)

今のところ問題なく各サイトが動作しています。

しばらく様子見ですね。


■準備するもの

マルチサイト対応の移行先のWordpressサイト


■移行手順

※順番は適当でいいかと思います。

●マルチサイト側で、移行元のサイトを仮に新規作成しサイトidを取得する。

(単一側ではサイトidが無い?1番?ので、マルチサイトように取得しておきます)

参加サイト→サイトを追加
・サイトのアドレス
・サイトのタイトル
・管理者メールアドレス

●移行元のデータベースをsqlにて、バックアップ保存し編集します。

バックアップはphpMyAdminなどで

最低限必要なテーブルは、下記の感じです。

必要に応じて、プラグイン用のテーブルもサイトID番号を付与してください。

保存したsqlをエディタで開き、テーブル名にサイトIDを設定します。

その際に各CREATE TABLEは、削除した方がよいでしょう。

※移行先でサイトを作成した際に、既にテーブルが作成されています。

wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy

wp_[サイトID番号]_commentmeta
wp_[サイトID番号]_comments
wp_[サイトID番号]_links
wp_[サイトID番号]_options
wp_[サイトID番号]_postmeta
wp_[サイトID番号]_posts
wp_[サイトID番号]_terms
wp_[サイトID番号]_term_relationships
wp_[サイトID番号]_term_taxonomy


ついでに、移行先のテーブルをクリアしておきます。

TRUNCATE TABLE `wp_[サイトID番号]_commentmeta`;
TRUNCATE TABLE `wp_[サイトID番号]_comments`;
TRUNCATE TABLE `wp_[サイトID番号]_links`;

TRUNCATE TABLE `wp_[サイトID番号]_options`;
TRUNCATE TABLE `wp_[サイトID番号]_postmeta`;
TRUNCATE TABLE `wp_[サイトID番号]_posts`;
TRUNCATE TABLE `wp_[サイトID番号]_terms`;
TRUNCATE TABLE `wp_[サイトID番号]_term_relationships`;
TRUNCATE TABLE `wp_[サイトID番号]_term_taxonomy`;


●編集したsqlを、移行先でインポートしデータベースを移行します。

●利用しているテンプレート、プラグインをアップロードします。

●移行元のuploads(画像ファイルなど)をダウンロードし、移行先のblogs.dirへアップロードします。

※blogs.dir内にサイトID番号でフォルダを新規作成し、uploadsをfilesに名称を変更します。

※必要に応じて、files内のファイルに権限を設定した方がいいかもしれません。

以上で移行作業は完了です。

後は、必要に応じて、DNSの変更、apache、nginxなどのドメイン毎の設定をすれば

移行前と同じように何のトラブルも起こらずにサイトが表示されるはずです。


マルチサイトも利用しているプラグインが対応していなかったり、不具合が全てのサイトで

共有されてしまったりと、メリットとデメリットがあります。

全然関係の無いクライアント同士をマルチサイトで利用するなどビジネスで利用するのは

やめておいて、あくまでも個人的なブログをマルチサイトに対応させるだけにした方が良さそうですね。

Wordpressの仕様的にもプラグインがあっても良さそうなんだけど、需要がないのだろうか?

見つけることができませんでした。

関連記事