2026年9月24日
2026年9月24日
WordPressのcookieが設定されない問題
はじめに
この記事では、WordPressでcookieが正常に設定されない問題を解決するためのステップバイステップガイドをお伝えします。Cookieはユーザー認証やセッション管理などの重要な役割を果たすため、これが機能しないとサイトの全体的な動作が不安定になります。
症状・背景
このテーマが必要になる主な場面:
- WordPressログイン画面に進んでもログインできない
- ユーザー登録やコメント投稿時にエラーが発生する
- カスタムプラグインが期待通りの動作をしない
- メディア添付ファイルのアップロードに失敗する
手順・設定方法
ステップ1: PHP設定の確認と修正
# php.iniの読み込みパスを確認します。通常は /etc/php/7.4/apache2/php.ini (バージョンによって異なる場合があります)
php -i | grep 'Loaded Configuration File'
# session.save_pathが適切なディレクトリに設定されていることを確認します。
php -r "echo ini_get('session.save_path');"
# セッションの保存形式をファイルシステムに変更する場合は以下のように設定します
sed -i 's/session.save_handler = files/session.save_handler = files/g' /etc/php/7.4/apache2/php.ini
# ローカルのセッションストアを使用する場合、session.cookie_secureオプションが有効になっていることを確認します。
php -r "echo ini_get('session.cookie_secure');"
ステップ2: サーバー設定の確認と修正
# Apacheの場合、.htaccessファイルを確認し、以下の行があることを確認します。
cat .htaccess | grep 'SetEnvIfNoCase'
# Nginxの場合、サーバブロックの設定ファイルを開き、以下のように追加または変更します。
sudo nano /etc/nginx/sites-available/default
# 次に記述した内容を追加または修正します
set $cookie_domain "";
if ($http_cookie) { set $cookie_domain "yourdomain.com"; }
fastcgi_param PHP_VALUE "session.cookie_domain=$cookie_domain";
ステップ3: WordPress設定ファイルの確認と修正
# wp-config.phpを開き、以下のようにセッション設定を追加します。
sudo nano /var/www/html/wp-config.php
// ダイナミックなドメイン名を使用する場合
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
// サブディレクトリでWordPressが動作している場合
define('COOKIEPATH', '/subdirectory/');
// 記事編集ページのcookieパスを指定します。
define('ADMIN_COOKIE_PATH', '/wp-admin/');
ステップ4: ネットワーク状況とセキュリティ設定の確認
# セッションファイルへのアクセス権限を適切にセットします。
sudo chown -R www-data:www-data /var/lib/php/sessions/
# SELinuxが有効な場合は、以下のコマンドでセッションディレクトリへのアクセス許可を与えます。
sudo setsebool -P httpd_can_network_connect 1
# ファイアウォール設定を確認し、必要に応じてポートを開きます。
sudo ufw allow 'Apache'
注意事項
- PHPのバージョンやインストール先は環境によって異なる場合があるため、適切な設定ファイルを探し出してください。
- サーバーのセキュリティ設定を変更する際は、その影響が他のサービスに及ばないよう注意深く行うべきです。
- WordPressの設定ファイルを直接編集する前にバックアップを取り、問題が発生した場合でも素早く元に戻せるようにします。
まとめ
1. PHP設定の確認: php.ini のセッション関連設定をチェックし修正します。
2. サーバー設定の検証: .htaccess や Nginx 設定ファイルで必要な値が適切に指定されていることを確認します。
3. WordPress設定の調整: wp-config.php を編集して、セッション管理やcookieパスをカスタマイズします。
4. アクセス権限とセキュリティ設定: セッションデータへのアクセス制御を確立し、ファイアウォール設定も適切に整えます。
関連記事: