使用 phpMyAdmin 管理資料庫時,是否常遇到「登入逾時(1440 秒未活動),請重新登入」的提示?或是出現「您的 PHP 設定參數 session.gc_maxlifetime 短於 phpMyAdmin 設定的 Cookies 有效期」錯誤?這兩個問題其實關聯性極高,本文將詳細說明根本原因,並提供徹底解決的修改步驟。
session.gc_maxlifetime 設定值小於 phpMyAdmin 的 Cookie 有效期,導致實際登入階段比預期更短。phpMyAdmin 的登入狀態由 Session 與 Cookie 共同維持。PHP 本身的 session.gc_maxlifetime(預設 1440 秒,即 24 分鐘)決定了 Session 資料在伺服器端的最大存活時間;而 phpMyAdmin 設定檔 config.default.php 中的 $cfg['LoginCookieValidity'] 則控制 Cookie 的有效期。若前者小於後者,PHP 的垃圾回收機制會先清除 Session,導致使用者被強制登出,並觸發上述警告。
單方面修改其中一方通常無效,必須同時調整 PHP 與 phpMyAdmin 兩邊的設定,且確保 session.gc_maxlifetime ≥ LoginCookieValidity。
php.ini(Windows 通常在 PHP 安裝目錄;Linux 常見於 /etc/php.ini 或 /etc/php/版本/fpm/php.ini)。session.gc_maxlifetime,預設值為 1440。86400(24 小時)或依需求設定:session.gc_maxlifetime = 86400phpMyAdmin/libraries/config.default.php(部分版本建議改 config.inc.php,但預設值在此)。$cfg['LoginCookieValidity'] = 1440;。session.gc_maxlifetime 相同或更小,例如:$cfg['LoginCookieValidity'] = 86400;
session.cookie_lifetime: 若需瀏覽器關閉後仍保持登入,可同步設定 session.cookie_lifetime = 86400,但需注意安全性。session.gc_maxlifetime 警告。session.gc_maxlifetime 確認運行值。透過雙邊同步調整,即可徹底解決 phpMyAdmin 登入頻繁逾時與參數衝突警告,提升資料庫管理效率。