WordPressサイトの運営において、データベースの安全性の確保は非常に重要です。この対策の1つとして、デフォルトのテーブル接頭辞を変更することで、セキュリティを高めることができます。そこで、今回の記事では、WordPressのテーブル接頭辞を変更する簡単な方法をご紹介します。
WordPressのテーブル接頭辞は簡単に変更することができますが、エラーが発生する可能性もあるため、慎重に行いましょう。
実際の手順をご紹介する前に、まずはWordPressのテーブル接頭辞について、そして変更前の注意事項などをご紹介します。それから、本題のWordPressのテーブル接頭辞を変更する方法を3つ見ていきます。
それでは、早速始めましょう。
WordPressのテーブル接頭辞の変更方法について、動画での解説もご用意しています。
WordPressのテーブル接頭辞を変更する必要性
WordPressのテーブル接頭辞は、WordPressデータベース内の各テーブルを識別するための文字列。デフォルトではwp_
に設定されています。
デフォルトの接頭辞は、当然ハッカーなども把握していることから、サイトを攻撃の危険にさらす可能性があります。したがって、WordPressサイトを安全に運営するには、デフォルトの接頭辞を変更しておくことが重要です。
WordPressのテーブル接頭辞を変更するタイミング
WordPressのテーブル接頭辞は、いつでも変更可能ですが、基本的にはWordPressをインストールした際に変更してしまうのが賢明です。後になって既存サイトのテーブル接頭辞について心配する必要がなくなります。
WordPressをこれからインストールする方は、画面の指示に従って、テーブル接頭辞を変更しておきましょう。
既存のWordPressサイトのテーブル接頭辞を変更する場合は、後ほどご説明する手順に従って実行してください。
WordPressのテーブル接頭辞を変更する前の注意点
WordPressのテーブル接頭辞を変更する前に、注意すべき点がいくつかあります。
まず、WordPressデータベースのバックアップは必ず作成すること。変更中に何かがエラーが発生しても、すぐにサイトを復元できるようにするためです。
また、テーブル接頭辞をもとに保存されている構造上、テーブル接頭辞を変更すると、利用中のプラグインやテーマが破損する可能性がある点にも注意が必要です。
したがって、既存のプラグインやテーマを一度無効化してから、再度有効にするのが得策です。この方法についても後ほどご説明します。
3つ目は、接頭辞を変更しても、すでにSQLインジェクションでサイトを不正操作するハッキングを完全に阻止できるわけではないということ。しかし、ハッキング行為の大部分を占めるボットによる攻撃は回避することができます。
4つ目に、wp-config.php
フォルダで設定した接頭辞と、実際のデータベースで使用する接頭辞は一致しなければなりません。テーブル間で異なる接頭辞を使用すると、サイトが破損してしまいます。これはちょっとした操作ミスで起こり得るため、不安な場合は、開発者などの助けを借りて変更を行ってください。
また、データベースを頻繁に操作する場合、ウェブ上の情報ではデフォルトの接頭辞が使用されているため、使用するたびに接頭辞の変更が必要になり、やや手間がかかることも覚えておいてください。
以上、基本的な情報を押さえたところで、早速テーブル接頭辞の変更方法を見ていきましょう。
WordPressのテーブル接頭辞を変更する方法(3つの手法)
WordPressのテーブル接頭辞を変更するには、3つの方法があります。以下、それぞれ詳しくご説明していきます。
変更前にバックアップを
テーブル接頭辞の変更によって、サイト全体が壊れてしまう可能性があります。そのため、データベースとサイト全体をバックアップしておきましょう。バックアップさえ取っておけば、万が一エラーが発生してもすぐにサイトを復元できるため安心です。
WordPressサイトのバックアップ方法はいくつかあります。WordPressに特化したホスティングサービスをご利用の場合は、バックアップ機能があるかもしれません。また、バックアッププラグインを使う手もあります。Kinstaのお客様は、すべてのプランでMyKinstaで自動バックアップが行われます。
バックアップをより頻繁に作成したい場合には、Kinstaのバックアップアドオンを使用すると、1時間ごとのバックアップを作成することができます。さらに、外部バックアップアドオンを利用すると、Amazon S3やGoogle Cloud Storageでバックアップを保存することも可能です。
方法1. 自分で変更する
最初にご紹介する方法は、FTPを使用してwp-config.phpファイルを直接編集するものです。このファイルは、MyKinstaで簡単に編集することができます。以下、順を追って見ていきましょう。
1. MyKinstaにログイン
ログインしたら、左サイドバーの「サイト」をクリックして、テーブル接頭辞を変更したいサイトを選択します。次に「情報」画面を開き、「SFTP/SSH」セクションの「ホスト」、「ユーザー名」、「パスワード」、「ポート」の情報をコピーできるようにしておきます。
2. FTPクライアントに接続
このログイン情報を使って、FTPクライアントにログインします。無料で使えるFileZillaがお勧めです。FileZillaをインストールしたら、アプリを開き、先ほど確認した情報を各フィールドに貼り付けます。その後、「Quickconnect」をクリックします。
または、ご利用のサーバーのアカウントにログインして、cPanelの「ファイルマネージャー」にアクセスしても、ここまでの操作が行えます。
3. wp-config.phpファイルをダウンロード
ログイン後、右側に表示されるファイル一覧からwp-config.php
ファイルを見つけてください。右クリックで「Download」を選択し、コンピュータにダウンロードします。
4. wp-config.phpファイルを編集
wp-config.php
ファイルをSublime Textなどの任意のテキストエディターで開きます。以下の行を検索してください。
$table_prefix = ‘wp_’;
接頭辞である‘wp_'
の部分を変更します。変更後は、必ずファイルを保存しましょう。
5. wp-config.phpファイルをアップロード
次にFileZillaに戻り、コンピュータに保存されているwp-config.php
ファイルを探します。右クリックで「Upload」を選択してください。
6. データベース内のすべてのWordPressテーブル名を新しい接頭辞に変更
この後は、データベース内のすべてのWordPressテーブルの接頭辞を変更します。デフォルトでは以下のようになっています。
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_term_relationships
- wp_term_taxonomy
また、プラグインによって生成されたデフォルト以外のデータベーステーブルも変更が必要になります。
接頭辞を変更するには、データベースにアクセスします。cPanelのphpMyAdminを開くか、MyKinstaでデータベースに直接アクセスして実行します。後者の場合は、MyKinstaにログインし、「サイト」>(サイト名)>「情報」に移動して、「phpMyAdminを開く」をクリックします。
左側サイドバーでデータベース名をクリックし、ページ上部にある「SQL」タブを開きます。テキストボックスに、以下のクエリを貼り付けてください。
RENAME table wp_xxxx TO newprefix_xxxx;
newprefix
は、先ほど変更した新しい接頭辞に置き換えます。例えば、wp_comments
のデータベース接頭辞を変更する場合は、newprefix_comments
となればOKです。
完了後、「Go」をクリックして保存します。
データベース内のすべてのWordPressテーブルに対して、この手順を繰り返し、wp_
を置き換えます。
最後に、optionsとusermetaテーブルで以前の接頭辞(wp_
)を検索して、すべて変更されているかどうかを確認しましょう。
7. すべてのプラグインとテーマを無効にして再度有効化
次に、すべてのプラグインとテーマを無効化します。プラグインとテーマはデフォルトの接頭辞を使用してインストールされているため、新しい接頭辞に変更しなければなりません。
WordPress管理画面の「プラグイン」と「テーマ」でそれぞれ実行可能です。すべてのプラグインとテーマを無効にしたら、1つずつ有効化していき、変更後のテーブル接頭辞で正常に動作するかを確認します。
8. WordPressサイトをテスト
データベース内のすべてのテーブル接頭辞を変更したら、WordPressサイトをテストし、何か問題がないかを確かめます。ウェブブラウザでサイトにアクセスし、エラーなしで表示されればOKです。また、KinstaのAPMツールなどを使って、その後も継続的にパフォーマンス監視を行いしましょう。
方法2. プラグインを使用する
コードの記述や、データベースの操作に抵抗がある場合は、プラグインを使った方法もあります。Brozzme DB Prefix & Tools Addonsがお勧めです。
1. プラグインのインストールと有効化
まずは、プラグインをインストール・有効化します。WordPress管理画面から「プラグイン」>「新規追加」で「Brozzme DB Prefix & Tools Addons」を検索してください。
プラグインを見つけたら、「今すぐインストール」>「有効化」をクリックしましょう。
2. データベースの接頭辞を変更
プラグインを有効化したら、「ツール」>「DB Prefix」に移動して、データベースのテーブル接頭辞を変更します。
「New Prefix(新しい接頭辞)」フィールドに変更後の接頭辞を入力し、「Change DB Prefix(データベースの接頭辞を変更)」をクリックして変更を保存します。
以上で完了です。
3. WordPressサイトをテスト
プラグインでデータベースの接頭辞を変更したら、WordPressサイトに問題が見られないか確認することをお忘れなく。先ほどご紹介した手順と同様、ウェブブラウザを開いて、サイトに移動します。問題がなければ正しく変更が行えています。
方法3. Adminerを使用する
プラグインも使いたくないという方には、また別の方法も。Adminerを使ってデータベースの接頭辞を変更することができます。Adminerは、データベース管理用のスタンドアロンPHPスクリプトです。
1. Adminerのダウンロードとインストール
まずは、公式ウェブサイトから最新バージョンのAdminerをダウンロードします。その後、このPHPファイルをサイトのルートサーバーにアップロードしてください。これは、先ほどの手順と同様、FileZillaのようなFTPクライアントを使って行います。
Adminerをアップロードすると、ブラウザから直接アクセスできるようになります。最新バージョンは4.8.1なので、サイトのルートディレクトリに配置した場合は、https://your-website.com/adminer-4.8.1.phpでアクセスできるはずです。
2. SQLクエリを実行
これで、サーバー上のすべてのデータベースにアクセス、ログインすることができます。今回はWordPressのデータベースのみ扱います。
この画面で、左サイドバーからWordPressのデータベースを選択し、ページ上部にある「SQL Command」をクリックします。
テキストボックスに以下のクエリを貼り付けてください。
RENAME table wp_xxxx TO newprefix_xxxx;
newprefix
は、新しい接頭辞に置き換えます。例えば、wp_usermeta
のデータベース接頭辞を変更する場合は、newprefix_usermeta
となればOKです。
変更後、「Execute」ボタンをクリックします。
この操作をデータベース内のすべてのテーブルで繰り返し、wp_
を新しい接頭辞に置き換えてください。
3. WordPressサイトをテスト
データベース内のすべてのテーブル接頭辞を更新したら、サイトを確認し、問題が発生しないかを確認してください。ウェブブラウザでサイトにアクセスして問題がなければ、無事にデータベースのテーブル接頭辞の変更が完了です。
まとめ
WordPressデータベースのテーブル接頭辞の変更は、サイトのセキュリティを向上させるのに効果的です。デフォルトの接頭辞はwp_
ですが、簡単に変更可能です。
今回の記事では、WordPressのデータベースの接頭辞を変更する方法として、wp-config.php
ファイルを直接編集するもの、プラグインを使用したもの、そしてAdminerを使用したものの3種類ご紹介しました。
この記事を参考に、WordPressデータベースのテーブル接頭辞を安全に変更してみてください。
ワークフローを効率化するWordPressサイト管理ツールをお探しですか?MyKinstaが答えかもしれません。堅牢なセキュリティ、速度の最適化、自動バックアップなど、サイト管理に役立つさまざまな機能が揃っています。