WordPressをデフォルトのテーブル接頭辞でインストールしてしまうと、セキュリティ面で脆弱性となりやすい。そこで、インストール後にテーブル接頭辞を変更する。
コンテンツ
環境整理
作業前 | 作業後 | |
---|---|---|
環境 | サーバー | サーバー |
ディレクトリ | サブディレクトリ | サブディレクトリ |
サーバー | レンタルサーバ | レンタルサーバ |
MySQL管理ツール | phpMyAdmin | phpMyAdmin |
テーブル接頭辞 | wp_ | test_ |
URL置換 | – | Search-Replace-DB |
手順
phpMyAdminへアクセスする
phpMyAdminへアクセスし、編集するデータベースを選択する。
wp_
というテーブル接頭辞が付与されているこちらのデータベースを編集していく。

テーブル接頭辞を書き換える
編集したいテーブルをすべて選択し、チェックしたものを:
のプルダウンの中から、テーブル名の接頭辞を付け替える
をクリックする。

Replace table prefix:
の画面で、付け替え元
と付け替え先
を入力し実行する
をクリックする。

書き換えが成功した。

この段階でWordPressはデータベースとの接続情報を失い、Webサイトトップへアクセスすると、言語情報も失い、インストールウィザードへ促されてしまう。つまり、トップページにアクセスできず、管理画面にもログインできなくなる。

wp-config.phpを編集する
データベース情報を適正化するために、サーバからwp-config.phpをダウンロードして、データベース接続情報を入力し直す。
編集するのは、$table_prefix = 'wp_';
の行。
編集前はこのようにwp_
なので、
$table_prefix = 'wp_';
次のようにtest_
へ変更し保存する。
$table_prefix = 'test_';
保存が完了したら、サーバーへ戻す。
管理画面へログインできるようにする
トップページは正常に表示されるようになるが、管理画面へログインできない。原因はデータベースにwp_の情報が残っていることである。
そこでもう一度phpMyAdminへアクセスし、該当のデータベースのテーブルを編集する。
まずは。test_options
テーブルのおおよそ100行目にあるwp_user_roles
をtest_user_roles
へ書き換えて実行
する。

次に、wp_usermeta
テーブルを編集する。
Search this table
にwp
と入力すると、wp
が含まれる行をソートしてくれる。

wp_
となっている行をすべてtest_
へ変更する。

wp_optioins
テーブルにはwp_
が残っているが、とりあえずスルーした
管理画面へログインする
管理画面へログインできることを確認する。
うまくいかなかったときは
以上の手順の中で想定外のことが発生したときは、以下の解決策を試みる。
FTPでアップした画像をメディアに紐づける
FTPで画像をアップロードした時、画像がメディアに紐付けられないことがある。そういったときはプラグインMedia from FTP
を使用して、画像をメディアに認識させると良い。
移行後のWordPressにログイン出来ない
URLの変更を伴うような移行を行った場合、WordPressの管理画面にログインできなくなることがある。そんなときはいくつかの方法を試してみる。
WP_SITEURLとWP_HOMEを定義する
wp-config.php
に以下を追記する。
define('WP_HOME', 'http://hishigata.xsrv.jp/low');
define('WP_SITEURL', 'http://hishigata.xsrv.jp/low');
上記をwp-config.php
に追記すると、ダッシュボード
>設定
>WordPress アドレス (URL)
およびサイトアドレス (URL)
がグレーアウトして編集無効になる。
RELOCATE 定数を追記する
wp-config.phpの上記WP_SITEURLとWP_HOMEの2行を削除し、
define( 'RELOCATE', true );
と追記し、http://XXXXXX.com/XXXXXX/wp-login.phpへアクセスする。作業完了後に必ず、追記した行を削除すること。
- サイト URL の変更
https://ja.wordpress.org/support/article/changing-the-site-url/ - 【WordPress】テーブルの接頭辞「wp_」を別のものに変更する方法
https://blog.z0i.net/2020/12/wp-table-prefix.html