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_HOME・WP_SITEURL・COOKIE_DOMAIN の設定で解決します。本番DBをコピーした後は wp search-replace でURLを置換してください。