自由にシンプルに楽しくいこう!

WordPressのデータベースのプレフィックス(接頭辞)を変更する

WordPress

ワードプレスでは、データベースのテーブル名の先頭にプレフィックス(接頭辞)が付いています。

デフォルトでは「wp_」「wp2_」・・・となっていることが多いと思います。

このデフォルトの状態だと悪意を持ったユーザーにデータベースのテーブル名を推測されやすい状態になってしまいます。独自のプレフィックスに変更してセキュリティを強化しましょう!

ということで今回は、「WordPressのデータベースのプレフィックス(接頭辞)」を変更していきたいと思います。

今回の作業は、中途半端な設定をしてしまうとワードプレスが正常に動作しなくなる可能性もあります。しっかりとバックアップをとって何か問題が発生しても復旧できるようにして作業を進めていきましょう!

データベースのプレフィックスを変更する為にやることは?

プレフィックスを変更する為にやることは以下のとおりです。

・「wp-config.php」のプレフィックスの記述を変更する。

・ワードプレスの既存のテーブル名のプレフィックスを変更する。

・「options」「usermeta」テーブル内の項目を変更する。

 

次のサイトで、プレフィックスの変更手順を勉強させてもらいました。

プレフィックス(prefix)とは?Wordpressのテーブル名(プレフィックス)を変更する3つの手順
プレフィックス(prefix)とは、電話番号の市外局番のように、先頭に特別な意味がある場合に用います。 今回はこの「プレフィックス(prefix)」が設定されている、Wordpressで利用しているデータベースのテーブル名について、プレフィックスを変更する必要性と、変更手順について解説しています。

 

私も実際にやってみたので、手順ごとに注意点なんかをのせていきたいと思います。

基本的な手順は、先ほどご紹介したサイトに沿ってやっています。

「wp-config.php」のプレフィックスの記述を変更する。

FTPソフトなどを使って、ワードプレスがインストールされているWebサーバーの「wp-config.php」ファイルをテキストエディタで確認します。

真ん中より少し下のあたりに「WordPress データベーステーブルの接頭辞」という項目があると思います。この記述の中の$table_prefix = ‘wp2_’;」の値を変更します。

ここでは例として「$table_prefix = ‘wp2_after_’;」に変更しましたが、自分の好きな接頭辞にして大丈夫ですよ!

プレフィックスは、ワードプレスをインストールした時に決めることができますが、ほとんどの人は「wp_」「wp2_」「wp3_」・・・となっていると思います。

「wp-config.php」ファイルが編集できたら忘れずにWebサーバーにファイルを配置してください。

 

◆変更前

/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = 'wp2_';

 

◆変更後

/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = 'wp2_after';

 

ワードプレスの既存のテーブル名のプレフィックスを変更する。

このステップでは、ワードプレスで使っているデータベースのテーブル名を変更します。

データベースを操作するには「php MyAdmin」というツールを使います。

変更するテーブル名の先頭は「wp2_」のプレフィックスが全てのテーブルに付いています。この「wp2_」となっているプレフィックスを全て変更します。

 

プレフィックスを変更する為のSQLコマンドは、次のとおりです。

ALTER TABLE wp2_commentmeta RENAME TO wp2_after_commentmeta;

SQLコマンドの説明

ALTER TABLE テーブル名(変更前) RENAME TO テーブル名(変更後) ;

このSQLコマンドを実行することで、データベースのテーブル名を変更することができます。

 

このSQLをプレフィックスがついている全てのテーブルに対して処理します。

 

テーブル名を確認するためには、「php MyAdmin」にログインして対象のデータベースを選択すれば全てのテーブルが表示されます。

「wp2_」の付いた全てのテーブルに対してテーブル名を変更する為のSQLコマンドを作成します。

私の場合のSQLコマンドです。

ALTER TABLE wp2_blc_filters RENAME TO wp2_******_blc_filters;
ALTER TABLE wp2_blc_instances RENAME TO wp2_******_blc_instances;
ALTER TABLE wp2_blc_links RENAME TO wp2_******_blc_links;
ALTER TABLE wp2_blc_synch RENAME TO wp2_******_blc_synch;
ALTER TABLE wp2_commentmeta RENAME TO wp2_******_commentmeta;
ALTER TABLE wp2_comments RENAME TO wp2_******_comments;
ALTER TABLE wp2_ewwwio_images RENAME TO wp2_******_ewwwio_images;
ALTER TABLE wp2_links RENAME TO wp2_******_links;
ALTER TABLE wp2_options RENAME TO wp2_******_options;
ALTER TABLE wp2_postmeta RENAME TO wp2_******_postmeta;
ALTER TABLE wp2_posts RENAME TO wp2_******_posts;
ALTER TABLE wp2_siteguard_history RENAME TO wp2_******_siteguard_history;
ALTER TABLE wp2_siteguard_login RENAME TO wp2_******_siteguard_login;
ALTER TABLE wp2_termmeta RENAME TO wp2_******_termmeta;
ALTER TABLE wp2_terms RENAME TO wp2_******_terms;
ALTER TABLE wp2_term_relationships RENAME TO wp2_******_term_relationships;
ALTER TABLE wp2_term_taxonomy RENAME TO wp2_******_term_taxonomy;
ALTER TABLE wp2_usermeta RENAME TO wp2_******_usermeta;
ALTER TABLE wp2_users RENAME TO wp2_******_users;

 

プレフィックスを変更する為のSQLを実行するには、SQLタブから操作することができます。

対象のSQLを入力して[実行]を選択します。

 

これで、データベースのテーブル名(プレフィックス)の変更作業は完了です!

 

「options」「usermeta」テーブル内の項目を変更する。

テーブル名の他に、「wp2_」が付いているテーブルを呼び出しているデータが存在します。

この部分に対しても、プレフィックスを変更してあげる必要があります。

対象のデータは、「options」テーブル「usermeta」テーブルです。

 

「options」テーブルからデータの修正を行います。

次のSQLコマンドを実行します。

SELECT * FROM 'wp2_after_options' WHERE 'option_name' LIKE '%wp2_%'

SQLコマンドの説明

SELECT * FROM ‘テーブル名(変更後)‘ WHERE ‘option_name’ LIKE ‘%wp2_%’

「wp2_after_options」テーブルの「option_name」列で「wp2_」から始まるデータを探し出すためのSQLコマンドです。

 

コマンドを実行すると「wp2_テーブル名」で始まるデータが表示されます。

「wp2_」で始まる「option_name」の値を「wp2_after_・・・」に変更します。

データが表示されているフィールドを選択すれば値を修正することができます。

 

次に「usermeta」テーブルのデータの修正を行います。

次のSQLコマンドを実行します。

SELECT * FROM 'wp2_after_usermeta' WHERE 'meta_key' LIKE '%wp2_%'

SQLコマンドの説明

SELECT * FROM ‘テーブル名(変更後)‘ WHERE ‘meta_key’ LIKE ‘%wp2_%’

「wp2_after_usermeta」テーブルの「meta_key」列で「wp2_」から始まるデータを探し出すためのSQLコマンドです。

 

先ほどと同じように「wp2_テーブル名」で始まるデータが表示されます。

「wp2_」で始まる「meta_key」の値を「wp2_after_・・・」に変更します。

 

この修正が終わればプレフィックスを変更する作業は完了です。

 

まとめ

今回は、ワードプレスのセキュリティを高めるためにデータベースのテーブル名を変更する作業を行いました。

プレフィックス(テーブル名)を変更する作業は、大きく分けて3つのステップがありました。

自分の環境によって変更対象のデータが多い場合や少ない場合があると思います。

修正の漏れがないようにするためには、自分の環境で「wp2_」で始まるテーブル名と「wp2_」で呼び出されるデータを全て変更すると考えておけば問題ないでしょう!