[WordPress] SAKURAスタンダートで複数ブログを運営する

SAKURAのスタンダートプランでは、データベースが1つしか作れませんが、負荷に余裕があって複数のWordPressを運営したいという場合は、WordPressのテーブルプレフィックスをブログ毎に設定することで実現可能です。

wptableprefix.png

すでに運営しているWordPressのテーブルプレフィックスを変更する手順は、以下のような流れになります。

  1. wp-config.php の「$table_prefix = ‘wp_‘;」の「wp_」の部分を変更する。(例:wp_xxxx_)
  2. phpMyAdmin でデータベーステーブル「wp_」を変更したプレフィックスにリネームする。
  3. データベーステーブル内のデータ名「wp_」の部分をリネームする。

wpprefixerror.png

wp-config.php のプレフィックスとデータベーステーブルのプレフィックスを変更しただけの場合、「このページにアクセスするための十分なアクセス権がありません。」といったエラーが出ます。データベーステーブル内のデータ名にある「wp_」もリネームする必要があります。

myadmintablesousa.pngtableprefixnpitsu.png

データベーステーブルのプレフィックスの変更は、phpMyAdmin の「操作」メニューから手作業で行えますが、運営中のブログの場合は、SQLクエリで一括処理するのがオススメです。

以下のクエリを、エディタにコピペして「wp_xxxx_」の部分を自分の変更したいプレフィックスに一括置換してご利用下さい。

ALTER TABLE wp_comments RENAME TO wp_xxxx_comments;
ALTER TABLE wp_links RENAME TO wp_xxxx_links;
ALTER TABLE wp_options RENAME TO wp_xxxx_options;
ALTER TABLE wp_postmeta RENAME TO wp_xxxx_postmeta;
ALTER TABLE wp_posts RENAME TO wp_xxxx_posts;
ALTER TABLE wp_terms RENAME TO wp_xxxx_terms;
ALTER TABLE wp_term_relationships RENAME TO wp_xxxx_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO wp_xxxx_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO wp_xxxx_usermeta;
ALTER TABLE wp_users RENAME TO wp_xxxx_users;

デフォルトのテーブルはここまで、ここより下はPluginのものです。自分用に変更して下さい。

ALTER TABLE wp_tags RENAME TO wp_xxxx_tags;
ALTER TABLE wp_tag_synonyms RENAME TO wp_xxxx_tag_synonyms;
ALTER TABLE wp_post2tag RENAME TO wp_xxxx_post2tag;
ALTER TABLE wp_ktaisession RENAME TO wp_xxxx_ktaisession;
ALTER TABLE wp_ak_twitter RENAME TO wp_xxxx_ak_twitter;
ALTER TABLE wp_Counterize_Keywords RENAME TO wp_xxxx_Counterize_Keywords;
ALTER TABLE wp_Counterize_Pages RENAME TO wp_xxxx_Counterize_Pages;
ALTER TABLE wp_Counterize_Referers RENAME TO wp_xxxx_Counterize_Referers;
ALTER TABLE wp_Counterize_UserAgents RENAME TO wp_xxxx_Counterize_UserAgents;

テーブルプレフィックスの変更が済んだら、データベーステーブル内のデータ名をリネームするクエリを続けて実行します。

UPDATE wp_xxxx_options SET option_name = 'wp_xxxx_user_roles' WHERE option_name = 'wp_user_roles';
UPDATE wp_xxxx_usermeta SET meta_key = 'wp_xxxx_capabilities' WHERE meta_key = 'wp_capabilities';
UPDATE wp_xxxx_usermeta SET meta_key = 'wp_xxxx_user_level' WHERE meta_key = 'wp_user_level';

あとは、WordPressのダッシュボードにアクセスして動作確認。

(参考サイト)