CreaTools LogoCreaTools
Tips

wp-config.phpを編集する前に決めること

2025-09-12

この記事が解決する状況

あなたの状況読むべきセクション
wp-config.phpを触ったことがないこの記事を読む前に
リダイレクトループで困っているトラブル解決:リダイレクトループ
本番サイトを高速化したいパフォーマンス向上
セキュリティを強化したいセキュリティ強化
エラーの原因を調べたいデバッグ・開発

wp-config.phpは強力だからこそ、設定ミスの影響も大きい。触る前に必ずバックアップを取ること。


この記事を読む前に

触っていい人

  • FTPまたはSSHでファイルにアクセスできる
  • バックアップを取る手段がある
  • 真っ白になった時にFTPで修正できる

触らない方がいい人

  • サーバーへのアクセス方法がわからない
  • バックアップの取り方がわからない
  • 「何となく」で設定しようとしている

わからないことがあったらサポートに聞くか、詳しい人に頼む。


設定一覧と危険度

設定目的危険度間違えた時
WP_DEBUGデバッグ⚠️ 中情報漏洩
WP_HOME / WP_SITEURLURL強制🔴 高アクセス不能
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の読み込み前
  • テーブル接頭辞は運用開始後に変更しない
  • 編集前に必ずバックアップ

関連記事