phpMyAdmin会话超时需同步调整三处:$cfg['LoginCookieValidity'](如设为36000秒)、session.gc_maxlifetime(须≥前者)及Nginx/Apache反代超时(如proxy_read_timeout 3600),三者须满足≤关系,且修改后需重启PHP与Web服务并清理浏览器缓存。
phpmyadmin 的会话超时由三处共同控制,只改一处大概率失效 —— 必须同步调整 $cfg['logincookievalidity']、session.gc_maxlifetime 和 web 服务器反代超时。
修改 $cfg['LoginCookieValidity'] 是最直接的入口
这个值决定登录 Cookie 的有效期,是 phpMyAdmin 自身的硬性限制。默认 1440(24 分钟),改大就能延长前台感知的登录时长。
- 路径通常是
/www/wwwroot/phpmyadmin/libraries/config.default.php或/www/wwwroot/phpmyadmin/config.inc.php(宝塔面板下常见于站点根目录的public/phpmyadmin/子目录) - 添加或修改这一行:
$cfg['LoginCookieValidity'] = 36000;(单位秒,建议设为 3600~86400 之间) - 注意:该值不能大于
session.gc_maxlifetime,否则页面会报错:“您的 PHP 配置参数session.gc_maxlifetime短于您在 phpMyAdmin 中设置的 Cookies 有效期…”
session.gc_maxlifetime 必须同步调大
PHP 服务端会定期清理过期 session 文件,session.gc_maxlifetime 就是这个“清理门槛”。即使 Cookie 没过期,session 文件被删了,登录照样失效。
- 在宝塔面板中进入对应 PHP 版本的【设置】→【配置文件】,搜索
session.gc_maxlifetime - 设为与
$cfg['LoginCookieValidity']相同或更大,例如:session.gc_maxlifetime = 36000 - 同时确认这两项未被注释且数值合理:
session.cookie_lifetime = 36000(控制浏览器端 Cookie 过期)、session.cache_expire = 360(仅影响 HTTP 缓存头,一般不用动) - 改完必须重启 PHP 服务,否则不生效
Nginx/Apache 反代超时会截断长连接
如果你是通过宝塔「反向代理」方式访问 phpMyAdmin(比如用域名 db.example.com 映射到本地端口),Nginx 或 Apache 的超时设置会提前切断连接,导致页面卡死或 504 错误,跟会话本身无关但表现像“超时”。
⚠️ 已弃用 — 该技能已拆分为两个独立技能,以提升模块化程度:**webchat-https-proxy**(HTTPS/WSS 反向代理)和 **webchat-voi...**
- 宝塔中找到对应站点 → 【反向代理】→ 编辑规则 → 在「高级」里追加:
- Nginx 场景加:
proxy_read_timeout 3600;、proxy_send_timeout 3600; - Apache 场景加:
ProxyTimeout 3600 - 保存后重启 Nginx 或 Apache
最容易被忽略的是三者数值关系:$cfg['LoginCookieValidity'] ≤ session.gc_maxlifetime ≤ proxy_read_timeout。任意一环更短,就会成为实际瓶颈。改完别忘了清浏览器缓存和 Cookie,否则旧会话残留可能干扰验证。
立即学习“PHP免费学习笔记(深入)”;


















