必须同步修改php的session.gc_maxlifetime和phpmyadmin的$cfg['logincookievalidity'],前者控制服务端会话有效期(如设为14400秒),后者控制浏览器cookie有效期且不得大于前者;还需配置session.cookie_lifetime与之匹配,并确保session.save_path权限正确、web服务完全重启。
必须同步改 php 底层 session.gc_maxlifetime 和 phpmyadmin 的 $cfg['logincookievalidity'],只动一边等于白改。
session.gc_maxlifetime 必须先调大
phpMyAdmin 登录后秒退或挂机 24 分钟就掉,根本原因是 PHP 默认 session.gc_maxlifetime = 1440(24 分钟),GC 进程会随机清理超时 session 文件——哪怕你 Cookie 还有效,服务端数据已丢。
- 在
php.ini中找到并修改:session.gc_maxlifetime = 14400(推荐 4 小时,即 14400 秒) - 如果用宝塔或 XAMPP,确认改的是正在运行的 PHP 版本对应的
php.ini,不是php.ini-development等备份文件 - 改完必须完整重启 Web 服务:
systemctl restart apache2或宝塔里点「重启 PHP」,reload不生效 - 用
phpinfo()页面验证运行时值,避免被.htaccess或php_admin_value覆盖
$cfg['LoginCookieValidity'] 要匹配且略小
这个值控制浏览器端 Cookie 的有效期,但它不是独立生效的——它受 session.gc_maxlifetime 硬性约束。设得比后者大,页面会直接报错:“您的 PHP 配置参数 session.gc_maxlifetime 短于您在 phpMyAdmin 中设置的 Cookies 有效期……”
- 路径优先找
config.inc.php(XAMPP 是C:\xampp\phpMyAdmin\config.inc.php,宝塔是站点根目录下的/public/phpmyadmin/config.inc.php) - 若不存在,复制
config.sample.inc.php并重命名,再添加两行:$cfg['LoginCookieValidity'] = 14400;和$cfg['LoginCookieStore'] = 0; - 别改
libraries/config.default.php:它是只读模板,多数环境不加载;少数旧版 XAMPP 可能读它,但优先级低于config.inc.php -
$cfg['LoginCookieStore'] = 0表示 Cookie 永不过期(关浏览器也不清),适合开发机;生产环境可设为具体秒数
别漏掉 session.cookie_lifetime
即使前两项都对了,用户关浏览器再打开仍要重登,大概率是 session.cookie_lifetime 还是默认的 0。
- 在同一个
php.ini里,确保这行未被注释:session.cookie_lifetime = 14400 - 它和
session.gc_maxlifetime值应一致,否则 Cookie 先过期,session 还活着也没用 -
session.cache_expire影响页面缓存,设太大(如 >3600)可能在 IE/Edge 下触发意外登出,保持默认360即可
检查 session.save_path 权限和隔离性
常见隐形坑:PHP 写不了 session 目录,每次请求都生成新 PHPSESSID,看起来像“没登录过”。尤其 Docker、宝塔多站共用、手动部署时高发。
- 运行
php -i | grep session.save_path查当前路径(如/var/lib/php/sessions) - 执行
ls -ld /var/lib/php/sessions,确认 Web 用户(www-data、apache或容器内 UID)有读写权限 - 避免把
session.save_path指向 NFS、tmpfs 或全局共享路径;多个 PHP 应用共用同一目录时,GC 可能误删其他应用的 session - 临时测试可设为绝对路径加独立子目录:
session.save_path = "/var/lib/php/sessions-pma",再chown www-data:www-data /var/lib/php/sessions-pma
最常被跳过的其实是权限和路径隔离——session.gc_maxlifetime 和 $cfg['LoginCookieValidity'] 都设对了,但 session 根本没存成功,一切配置都是空转。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











