2026年5月20日

2026年5月20日

WordPressのlocalhost環境でログインできない場合の解決方法

はじめに

WordPressをローカル環境(localhost)で動かす際にログインできない問題は非常によく起こります。主な原因はCookie設定の不整合、サイトURLの設定ミス、HTTPS/HTTPの混在です。

症状別の原因と解決策

症状1:ログインページでリダイレクトループが発生する

// wp-config.php に追加
define('WP_HOME',    'http://localhost:8080');
define('WP_SITEURL', 'http://localhost:8080');

// または DB を直接更新
// wp option update siteurl 'http://localhost:8080'
// wp option update home    'http://localhost:8080'

症状2:CookieエラーでログインできないWindowsのhosts設定が原因の場合

// wp-config.php — Cookie ドメインを明示的に設定
define('COOKIE_DOMAIN', 'localhost');
define('COOKIEPATH',    '/');
define('ADMIN_COOKIE_PATH', '/');

// WordPress 塩(Salt)をリセット(セッションをクリア)
// wp config shuffle-salts

症状3:本番環境のDBをローカルにコピーした後ログインできない

# サイトURLをlocalhostに変更
wp search-replace 'https://example.com' 'http://localhost:8080' --all-tables

# siteurl と home を確認
wp option get siteurl
wp option get home

# キャッシュをクリア
wp cache flush
wp rewrite flush

症状4:HTTPSのCookie設定がローカルで機能しない

// wp-config.php — ローカルではSSL強制を無効化
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] === 'localhost') {
    define('FORCE_SSL_ADMIN', false);
}

// または環境変数で制御
define('FORCE_SSL_ADMIN', getenv('WP_ENV') === 'production');

症状5:LocalやMAMPでドメインがlocalhost以外の場合

// wp-config.php — ローカル開発ドメインに合わせて設定
define('WP_HOME',    'http://mysite.local');
define('WP_SITEURL', 'http://mysite.local');
define('COOKIE_DOMAIN', 'mysite.local');

ステップ:ローカル環境でのデバッグ設定

// wp-config.php — ローカル開発用デバッグ設定
define('WP_DEBUG',         true);
define('WP_DEBUG_LOG',     true);
define('WP_DEBUG_DISPLAY', true);
define('SCRIPT_DEBUG',     true);

// ログファイルの場所
// /wp-content/debug.log

ローカル開発ツール別の注意点

| ツール | デフォルトURL | よくある問題 |

|--------|-------------|------------|

| Local (by Flywheel) | mysite.local | SSL証明書の信頼設定 |

| MAMP | localhost:8888 | ポート番号の設定 |

| Docker | localhost:8080 | ネットワーク設定 |

| Laragon | mysite.test | hostsファイルの自動更新 |

注意事項

  • COOKIE_DOMAIN を設定する際に先頭に . を付けないでください。localhost にはサブドメインがないため、.localhost にするとCookieが機能しません
  • 本番のDBスナップショットをローカルで使う場合は、必ずURLの置換を行った後にキャッシュとRewriteルールをフラッシュしてください

まとめ

localhostでのログイン問題はほとんどの場合、wp-config.phpの WP_HOMEWP_SITEURLCOOKIE_DOMAIN の設定で解決します。本番DBをコピーした後は wp search-replace でURLを置換してください。

お気軽にご相談ください

お見積りへ お問い合わせへ