萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

phpMyAdmin 登入逾時 1440 秒未活動請重新登入?完整解決方案與設定教學

使用 phpMyAdmin 管理資料庫時,是否常遇到「登入逾時(1440 秒未活動),請重新登入」的提示?或是出現「您的 PHP 設定參數 session.gc_maxlifetime 短於 phpMyAdmin 設定的 Cookies 有效期」錯誤?這兩個問題其實關聯性極高,本文將詳細說明根本原因,並提供徹底解決的修改步驟。

問題現象

  • 現象一: 操作 phpMyAdmin 不久即跳出「登入逾時(1440 秒未活動),請重新登入」,頻繁中斷工作流程。
  • 現象二: 介面顯示警告: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。

步驟 1:修改 PHP 設定 (php.ini)

  1. 找到 php.ini(Windows 通常在 PHP 安裝目錄;Linux 常見於 /etc/php.ini 或 /etc/php/版本/fpm/php.ini)。
  2. 搜尋 session.gc_maxlifetime,預設值為 1440。
  3. 將其改大,例如 86400(24 小時)或依需求設定:
    session.gc_maxlifetime = 86400
  4. 儲存後重啟 Web 伺服器(Apache/Nginx/php-fpm)使生效。

步驟 2:修改 phpMyAdmin 設定 (config.default.php)

  1. 開啟 phpMyAdmin/libraries/config.default.php(部分版本建議改 config.inc.php,但預設值在此)。
  2. 找到 $cfg['LoginCookieValidity'] = 1440;。
  3. 將數值改為與 session.gc_maxlifetime 相同或更小,例如:
    $cfg['LoginCookieValidity'] = 86400;
  4. 儲存檔案,重新整理 phpMyAdmin 即可生效(無需重啟服務)。

phpMyAdmin 設定修改示意圖

常見誤區與補充說明

  • 只改 php.ini 不改 phpMyAdmin: 仍會出現警告,且 Cookie 過期時間仍為 1440 秒,實際登入階段不會延長。
  • 只改 phpMyAdmin 不改 php.ini: PHP 會在 1440 秒後清除 Session,導致「登入逾時」依舊發生,且警告訊息會常駐。
  • 搭配 session.cookie_lifetime: 若需瀏覽器關閉後仍保持登入,可同步設定 session.cookie_lifetime = 86400,但需注意安全性。

驗證是否生效

  1. 登入 phpMyAdmin,閒置超過 24 分鐘(若設為 86400 則需隔天測試)。
  2. 確認無「登入逾時」提示,且介面不再顯示 session.gc_maxlifetime 警告。
  3. 可在 phpMyAdmin 首頁點擊「變數」標籤,搜尋 session.gc_maxlifetime 確認運行值。

透過雙邊同步調整,即可徹底解決 phpMyAdmin 登入頻繁逾時與參數衝突警告,提升資料庫管理效率。

copyright © 萬盛學電腦網 all rights reserved