wp-config.php は WordPress の心臓.本記事ではセキュリティ・パフォーマンス・運用の3観点で必須設定を整理する.

この記事では,個人開発者・WordPress運用者・スモールチームの方を主な読み手として書いています.10分で読み終わって,明日から動ける具体的な行動が1つ見つかる状態を目指しています.

なぜ wp-config.php を見直すべきか

多くの WordPress サイトはインストール時のデフォルトのまま運用されている.これは「家を建てたまま鍵を変えずに住んでいる」ようなもの.

10行追加するだけで,攻撃面の縮小・パフォーマンス向上・運用効率化が一気に進む.wp-config.php は WordPress 運用のレバレッジが最も高いファイル.

必須1:AUTH キーをランダム生成し直す

AUTH_KEYNONCE_SALT の8つの定数はCookie/セッションの暗号化キー.インストール時のデフォルトのままはNG.

https://api.wordpress.org/secret-key/1.1/salt/で新規生成し,そのまま貼り替える.既存セッションは無効化されるが,攻撃耐性が劇的に上がる.

必須2:DB プレフィックスを wp_ 以外に

デフォルトの wp_SQLインジェクション攻撃の標的になりやすい.新規インストールなら$table_prefix = 'snlx_';のような独自名に.

運用中サイトの変更は手間.プラグイン(Better Search Replace)で安全に変更できるが,必ずバックアップ後に.

必須3:DISALLOW_FILE_EDIT で管理画面のコードエディタ無効化

define('DISALLOW_FILE_EDIT', true); を追加.管理画面からのテーマ・プラグインのコード編集を禁止.

管理者アカウントを乗っ取られた場合の被害を最小化.運用は SSH/FTPでのデプロイに統一する設計に合う.

必須4:WP_DEBUG を本番では確実にOFF

開発中はWP_DEBUG = true,本番では必ず false.デバッグ情報がエラー時にパスやDB構造を漏らす.

本番でログだけ取りたいならWP_DEBUG=true; WP_DEBUG_DISPLAY=false; WP_DEBUG_LOG=true;.画面には出さずファイルにだけ書く.

必須5:自動更新の制御

define('WP_AUTO_UPDATE_CORE', 'minor');.メジャー更新は手動,マイナー(セキュリティ)更新は自動.バランスが良い.

プラグイン自動更新はadd_filter('auto_update_plugin', '__return_false');で停止.本番安定が最優先のサイトは手動更新が安心.

必須6:投稿リビジョン制限

define('WP_POST_REVISIONS', 5);.デフォルトはリビジョン無制限.記事を10回保存するとDBに10件のコピーが溜まる.

5件あれば過去復元には十分.DB肥大化を防げる.既存リビジョンは WP-CLI で一括削除.

必須7:ファイルパーミッションを明示

define('FS_CHMOD_FILE', 0644); + define('FS_CHMOD_DIR', 0755);.アップロード時のパーミッションが意図通りに設定される.

誤って 777 で書かれるとサーバー全体の権限事故に繋がる.明示しておくと事故率が下がる.

補論:wp-config.php は「家の設計図」

wp-config.php は独自ドメインで建てた家の設計図.設計図を見直すだけで,家全体の安全性と効率が上がる.Git管理外に置きつつ,編集履歴は別途残す工夫を.

これからドメインを取るなら,取り扱い400種類以上のドメイン取得サービス─ムームードメイン─ でドメイン取得 → サーバーにWordPressをインストール,が王道.独自ドメインのある WordPress は資産価値が違う.

WordPress 運用のレンタルサーバーはロリポップ!がおすすめ.wp-config.php は SFTP/ファイルマネージャから直接編集できる.バックアップ機能もあるので失敗からの復旧が容易.

よくある質問

Q1:wp-config.php を git で管理するべき?

DBパスワードを含むので原則NG.gitignoreに入れる.サンプル(wp-config-sample.php)だけ管理する.

Q2:環境ごとに分けるには?

if (file_exists(__DIR__.'/wp-config.local.php')) require ...で本番/開発で分岐.DotEnv 系プラグインも可.

Q3:書き換え後にサイトが真っ白に?

構文エラーの可能性大.直前のバックアップに戻す.wp-config.php の編集は必ずバックアップを取る.

まとめ ― wp-config.php は「10行で資産防御」

大事なのは,「正解を完璧に押さえる」ことではなく「動き始める」ことです.今日,自分のwp-config.phpを開いて,AUTH キーをランダムに張り替えるところから始めましょう.