Tips
wp-config.phpを編集する前に決めること
2025-09-12
この記事が解決する状況
| あなたの状況 | 読むべきセクション |
|---|---|
| wp-config.phpを触ったことがない | この記事を読む前に |
| リダイレクトループで困っている | トラブル解決:リダイレクトループ |
| 本番サイトを高速化したい | パフォーマンス向上 |
| セキュリティを強化したい | セキュリティ強化 |
| エラーの原因を調べたい | デバッグ・開発 |
wp-config.phpは強力だからこそ、設定ミスの影響も大きい。触る前に必ずバックアップを取ること。
この記事を読む前に
触っていい人
- FTPまたはSSHでファイルにアクセスできる
- バックアップを取る手段がある
- 真っ白になった時にFTPで修正できる
触らない方がいい人
- サーバーへのアクセス方法がわからない
- バックアップの取り方がわからない
- 「何となく」で設定しようとしている
わからないことがあったらサポートに聞くか、詳しい人に頼む。
設定一覧と危険度
| 設定 | 目的 | 危険度 | 間違えた時 |
|---|---|---|---|
| WP_DEBUG | デバッグ | ⚠️ 中 | 情報漏洩 |
| WP_HOME / WP_SITEURL | URL強制 | 🔴 高 | アクセス不能 |
| DB情報 | データベース接続 | 🔴 高 | サイト全停止 |
| DISALLOW_FILE_EDIT | ファイル編集禁止 | 🟢 低 | 影響小 |
| WP_MEMORY_LIMIT | メモリ | 🟢 低 | 影響小 |
| WP_POST_REVISIONS | リビジョン制限 | 🟢 低 | 影響小 |
| テーブル接頭辞 | DBテーブル名 | 🔴 致命的 | データ消失 |
🔴 触るな危険
テーブル接頭辞($table_prefix)
// ❌ 絶対に変更してはいけない(運用開始後)
$table_prefix = 'wp_';
運用開始後に変更すると、既存データが全て見えなくなる。 変更するなら新規インストール時のみ。
DB情報(運用中の変更)
// ⚠️ 間違えるとサイト全停止
define('DB_NAME', 'database_name');
define('DB_USER', 'username');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
変更が必要なのはサーバー移行時のみ。それ以外では触らない。
トラブル解決
リダイレクトループの解消
DBのURL設定がおかしくなった時の強制上書き。
// wp-settings.phpの前に追記
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
⚠️ 注意: http/https、www有無を正確に。間違えると悪化する。
メモリ不足エラー
define('WP_MEMORY_LIMIT', '256M');
「Allowed memory size exhausted」エラーが出る場合。
セキュリティ強化
管理画面からのファイル編集禁止(推奨)
// 🟢 安全:テーマ・プラグインエディタを無効化
define('DISALLOW_FILE_EDIT', true);
管理画面が乗っ取られた時の被害を軽減。デメリットはほぼない。
プラグイン・テーマのインストールも禁止
// ⚠️ 注意:更新もできなくなる
define('DISALLOW_FILE_MODS', true);
より厳格だが、プラグイン更新も管理画面からできなくなる。運用体制に合わせて判断。
SSL強制
define('FORCE_SSL_ADMIN', true);
管理画面へのアクセスをHTTPS強制。
認証キーの更新
セキュリティ強化、または全ユーザーを強制ログアウトさせたい時。
https://api.wordpress.org/secret-key/1.1/salt/ で生成。
define('AUTH_KEY', '新しいランダム文字列');
define('SECURE_AUTH_KEY', '新しいランダム文字列');
define('LOGGED_IN_KEY', '新しいランダム文字列');
define('NONCE_KEY', '新しいランダム文字列');
define('AUTH_SALT', '新しいランダム文字列');
define('SECURE_AUTH_SALT', '新しいランダム文字列');
define('LOGGED_IN_SALT', '新しいランダム文字列');
define('NONCE_SALT', '新しいランダム文字列');
パフォーマンス向上
DB肥大化の防止
// リビジョンを5件に制限(推奨)
define('WP_POST_REVISIONS', 5);
// 自動保存間隔を延長(秒)
define('AUTOSAVE_INTERVAL', 120);
// ゴミ箱を7日で自動削除
define('EMPTY_TRASH_DAYS', 7);
サーバーCronを使う場合
WordPress内蔵Cronはアクセス時に実行される。トラフィックが少ないと遅延する。
define('DISABLE_WP_CRON', true);
⚠️ これだけでは不完全。 サーバー側でcronを設定する必要がある。
*/15 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
デバッグ・開発
本番環境(デフォルト)
// 必須:本番では絶対にfalse
define('WP_DEBUG', false);
開発環境
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // wp-content/debug.log に記録
define('WP_DEBUG_DISPLAY', true); // 画面に表示
// 圧縮されていないJS/CSSを読み込む
define('SCRIPT_DEBUG', true);
// 環境タイプを明示
define('WP_ENVIRONMENT_TYPE', 'development');
ステージング環境
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // ログには記録
define('WP_DEBUG_DISPLAY', false); // 画面には表示しない
define('WP_ENVIRONMENT_TYPE', 'staging');
環境別に設定を分ける方法
// wp-config.php
if (file_exists(__DIR__ . '/wp-config-local.php')) {
require_once __DIR__ . '/wp-config-local.php';
} else {
// 本番設定
define('WP_DEBUG', false);
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
}
ローカルにはwp-config-local.phpを置き、.gitignoreに追加。
絶対にやってはいけないこと
| NG | 理由 |
|---|---|
| 本番でWP_DEBUG = true | エラー情報が漏れる |
| DB情報をGitにコミット | パスワード漏洩 |
| テーブル接頭辞を後から変更 | 既存データが見えなくなる |
| wp-settings.phpより後に記述 | 設定が反映されない |
| 「なんとなく」で設定追加 | 不要な設定で問題が複雑化 |
記述場所は require_once(ABSPATH . 'wp-settings.php'); の前。
本番環境の推奨設定まとめ
// === 必須 ===
define('WP_DEBUG', false);
// === 推奨 ===
// セキュリティ
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
// パフォーマンス
define('WP_POST_REVISIONS', 5);
define('AUTOSAVE_INTERVAL', 120);
define('EMPTY_TRASH_DAYS', 7);
// メモリ(必要に応じて)
define('WP_MEMORY_LIMIT', '256M');
// === 状況に応じて ===
// URL強制(リダイレクトループ対策)
// define('WP_HOME', 'https://example.com');
// define('WP_SITEURL', 'https://example.com');
// サーバーCron(低トラフィックサイト)
// define('DISABLE_WP_CRON', true);
まとめ
- 本番では
WP_DEBUGを必ずfalseに DISALLOW_FILE_EDITでセキュリティ強化(デメリットなし)- リビジョン制限でDB肥大化を防止
- 記述場所は
wp-settings.phpの読み込み前 - テーブル接頭辞は運用開始後に変更しない
- 編集前に必ずバックアップ
関連記事
- WordPressにログインできない時の原因特定フロー — 設定ミスでログインできなくなった場合
- WordPressバックアップで「何を」「どこに」保存するか — 編集前のバックアップ方法