BuddyPressのマルチサイトのデータベースを分離したい! ITかあさん

ITかあさん

BuddyPressのマルチサイトのデータベースを分離したい!

すごいよ!SharDB

SharDB
すごいよ、マサルさん的に言ってしまいましたが、WordPressのSharDBはとても素晴らしい WordPressでマルチサイトを作るならマストプラグインのうちに入るであろう、素晴らしいプラグインです

SharDBとは

HyperDBを元に作られたマルチサイトでデータベースを分散するためのプラグインで、最大で4096個のデータベースに分散することが出来るようです。
基本は 16個、256個、4096個の3タイプに分かれますが、256で止めておきなさい、4096個の状態はテストしていませんとかHyperDBでも言われていまして、4096個のデータベースなんて想像もつきませんが、基本は16個のデータベースでほとんどのマルチサイトはカバーできるのではないでしょうか?

私も使い始めたばかりで、細かいセッティングなどは調べている最中なのですが今回も16個のデータベースにてマルチサイトを対応していこうと思います。

データベースを16個作る

データベースを作る際、ただやみくもに作るのではなく、一定のルールに乗っ取ってデータベースを作ります。
私は元々buddy_pressというデータベースで作っていました。それをSharDBを使ってデータベースを分散していくので、
buddy_press・・・元のデータベース
buddy_press_0
buddy_press_1
buddy_press_2
buddy_press_3
buddy_press_4
buddy_press_5
buddy_press_6
buddy_press_7
buddy_press_8
buddy_press_9
buddy_press_a
buddy_press_b
buddy_press_c
buddy_press_d
buddy_press_e
buddy_press_f
buddy_press_global

buddy_press_という接頭詞を元に、0~9、アルファベットでa~f 最後にグローバールでglobalというデータベースを作ります。

分散は16個ですが作成するデータベースは17個になります。接頭詞は何でもいいですが、必ず17個の接頭詞は共通にして下さい。

SharDBをダウンロードして編集

まずはSharDBをダウンロードしますが、ダウンロードしたからと言って、フォルダはプラグインフォルダにはいれませんのでご注意を。

db-settings.php

db-settings.phpを編集します。このファイルで、どれくらい分散させるか、データベースの接頭詞は何だとか、基本となる設定をします。
13行目から38行目まで長いコメントアウトがあるのですがどれもこれもこのプラグインに関する設定のことばかりですが、
最低限これだけやっておけばいいみたいです。

$shardb_hash_length = 1;//分散させる個数
$shardb_prefix = 'buddy_press_';//接頭詞
$shardb_dataset = 'hoge';//秘密のキー?

shardb_hash_lengthは、何個のマルチサイトで分散させるか、という解釈をしました。(たぶんあってると思う)
マルチサイト100個で分散させたければ100と記入してください。
テスト的にマルチサイトの分散が見たかったので、私は1としました。

shardb_prefixは接頭詞

shardb_datasetについては最後までよく分かりませんでしたが、データベースを複数使うにあたり、このshardb_datasetがちゃんとあるかどうかでマルチサイトの判断をしているらしいです。確かに同じサーバー内で似たようなデータベース名で全然マルチサイトとは関係ないWordPress作っている可能性が無いとはいえないですからね

この3行をdb-settings.phpのThat’s all, stop editing!よりも前に書きます。

// instructions for adding vip blogs at the bottom of this confg filei
*/

//この間に書いてください

/* That's all, stop editing! Happy blogging. */

この3行だけ記入したら保存して、このファイルを

wp-config.phpと同じ階層に設置して下さい。

wp-config.phpの編集をする

こちらはプラグインファイルではありません。WordPressを設置した時に作られるwp-config.phpを編集します。

define(‘DB_COLLATE’・・・ と書いてある部分の後に、
require(‘db-settings.php’);

と、記述して保存します。

shardb-admin.phpを/wp-content/mu-plugins/フォルダに移動

mu-pluginsフォルダが存在しなければ、新たに作ってください。これでプラグインの有効化になっていなくても、自動で読み込まれるようになります、ということらしいです。

テーブルのマイグレーションを実行

マイグレーションとは、移動することです。たとえばVPSサーバーを別の機械にお引越しする時もマイグレーションと言いますね。
ここでいよいよ既存テーブルのマルチサイトへの移動を開始するわけですが、WordPressの管理画面から出来るので非常に簡単です。


WordPressの管理画面>ツール>SharDBMigration

まずは、Migrate Global Tablesボタンを押して、既存テーブルを丸ごとコピーします。



Migrate Global Tablesボタンを押して、マイグレーションに成功すると、このようにテーブルがざ~~っ出てきます。
少し時間がかかるかもしれませんが、しばらく待ちます

次にマイグレーションされたテーブルリストのしたにMigrate Sitesボタンがあるので、今度はそちらをクリックして、またしばらく待ちます。
成功すると、All done!と表示されます。

最後に、Shardbプラグインフォルダにまだプログラムファイルが一つ残ってますね。db.php

db.phpをwp-contentフォルダ直下に置いたら終了です。


WordPressの管理画面>プラグイン>ドロップイン

に、db.phpが表示されたらOK!


サイトネットワーク管理者>全てのサイト を、確認して下さい。

画像の通り、データベースが分離されていることでしょう!

すごい!これでマルチサイトがサーバーの許す限り、大量のマルチサイトが作れることでしょう!素晴らしい!

sharDB最高!シャーDB惚れ!

初夏のJavaScript祭 in サーキュレーションビル ForPro

ページ: 1 2