WordPressを導入する際には、セキュリティ的にデータベースのプレフィックスを標準の『wp_』から別なものに変更した方が良いです。
これはインストール時に設定出来ます。インストール画面の『テーブル接頭辞』というものです。
この設定は、WordPressフォルダ内の『wp-config.php』内で行っています。
で、ここからが本題。
これをインストール時に設定してしまえば良いのですが、インストール後に変更したいという場合もあります。
ここで、wp-config.phpを編集して、データベースのテーブル名を変更して、というところまでは判るのですが、それだけだと『このページにアクセスするための十分なアクセス権がありません。』と警告メッセージが表示されてしまいます。
というわけで、その対処方法も含め、最初から手順を書いてみたいと思います。
1. wp-config.pnpを編集する
wp-config.phpの70行前後くらいにある『$table_prefix』という部分を編集します。
$table_prefix = 'wp_';
という部分を
$table_prefix = 'wp_test_';
など、別なものに変更するだけです。
2. データベースのテーブル名を変更する
データベースでテーブル一覧を見ると『wp_~』というのが並んでいます。
これをwp-config.phpの$table_prefixで設定した値と同じにします。もちろん全部です。
これを一括で変更する方法あるのでしょうか?私は知りませんので、知っている方がいらっしゃいましたら教えて頂けると嬉しいです。
私はphpMyAdmin上で以下のようなSQLクエリを実行します。
ALTER TABLE wp_commentmeta RENAME TO wp_test_commentmeta; ALTER TABLE wp_comments RENAME TO wp_test_comments; ALTER TABLE wp_links RENAME TO wp_test_links; ALTER TABLE wp_options RENAME TO wp_test_options; ALTER TABLE wp_postmeta RENAME TO wp_test_postmeta; ALTER TABLE wp_posts RENAME TO wp_test_posts; ALTER TABLE wp_term_relationships RENAME TO wp_test_term_relationships; ALTER TABLE wp_term_taxonomy RENAME TO wp_test_term_taxonomy; ALTER TABLE wp_usermeta RENAME TO wp_test_usermeta; ALTER TABLE wp_users RENAME TO wp_test_users; ALTER TABLE wp_terms RENAME TO wp_test_terms;
お使いのエディタにコピーペーストして、『wp_test_』部分をお好きな文字列に変換して頂ければ、手間が少し省けるかもしれません。
3. データベース内のレコードを一部変更
ここまでですと先ほども記述しましたが、WordPressに怒られます。
これを解決するには『wp_options』と『wp_usermeta』内の3つのレコードを編集する必要があります。
以下のようなSQLクエリを実行します。
UPDATE wp_test_options SET option_name = 'wp_test_user_roles' WHERE option_name = 'wp_user_roles'; UPDATE wp_test_usermeta SET meta_key = 'wp_test_capabilities' WHERE meta_key = 'wp_capabilities'; UPDATE wp_test_usermeta SET meta_key = 'wp_test_user_level' WHERE meta_key = 'wp_user_level';
UPDATE直後、SETの後ろをそれぞれ適切なものに変更してください。元々別なプレフィックスを使っている場合にはWHEREの後ろも変更する必要があります。
これでOKなはずです。
まとめ
1と2は気付けても、最後の3つのレコードについてはなかなか気付けませんよね。
私はなかなか気付けず、かなり長い時間ハマりました。
あと、上記はWordPress標準のテーブルのみの話であり、プラグインなどによりテーブルを追加されている場合には、それが原因で怒られる場合もあります。
その場合には、そのテーブル内も確認して、上記のSQLクエリを参考にしながら、原因となっているレコードを適切な値に変更する必要もあります。もちろんテーブル名称の変更も必須です。
というわけで、セキュリティ的にも行うべきプレフィックスの変更について書いてみました。
何かありましたらコメントを頂けると嬉しいです。
ピンバック: WordPress初心者が「wpXレンタルサーバー」へ移転するときの注意点 | かっぱぶろぐ.net
ピンバック: WordPress 初心者が「wpX レンタルサーバー」へ移転するときに参照するマニュアルの補足事項 | かっぱのWordPress入門ログ
ピンバック: 最低限これだけはしておこう!WordPressのセキュリティを強化する5つの方法。
ピンバック: phpMyAdminを使ったWordPressの引越しの手順、ゴミ削除、接頭辞変更 | スーのページ