phpMyAdmin 的 Cookie 名称在 config.inc.php 中通过 $cfg['CookieName'] 配置,同时必须设置合法且足够强度的 $cfg['blowfish_secret'],二者缺一不可;修改后需清除浏览器旧 Cookie、phpMyAdmin 临时目录及 OPcache 等缓存才能生效。

phpMyAdmin 的 Cookie 名称在哪配置
phpMyAdmin 默认用 phpMyAdmin 作为会话 Cookie 名称(如 phpMyAdmin_abcdef123456),这是暴露服务指纹的明显信号。修改入口在配置文件 config.inc.php 中,不是 Apache/Nginx 配置,也不是 PHP 的 session.name —— 后者只影响 PHP 原生会话,对 phpMyAdmin 无效。
必须确认你编辑的是 phpMyAdmin 实际加载的配置文件,常见路径包括:/etc/phpmyadmin/config.inc.php、/usr/share/phpmyadmin/config.inc.php 或 Web 根目录下的 config.inc.php。改错文件毫无效果。
设置 $cfg['blowfish_secret'] 和 $cfg['CookieName']
仅设 $cfg['CookieName'] 不够,因为 phpMyAdmin 在 Cookie 加密时依赖 blowfish_secret,若未设置或为空,部分版本会拒绝启动或降级为不安全的认证方式。
-
$cfg['CookieName'] = 'mydb_admin_session';—— 必须是合法 Cookie 名(字母、数字、下划线、短横线,不能以数字开头) -
$cfg['blowfish_secret'] = 'a_32_char_random_string_here!@#';—— 至少 32 字符,含大小写字母、数字、符号;用openssl rand -base64 32生成最稳妥 - 这两行需放在
$cfg['Servers'][$i]['auth_type'] = 'cookie';之后,且不能被注释掉
改完后 Cookie 没变?检查这几个地方
浏览器仍看到旧 Cookie 名,大概率不是配置没生效,而是缓存或状态残留:
立即学习“PHP免费学习笔记(深入)”;
- 浏览器已存在旧
phpMyAdmin_*Cookie,需手动删除(开发者工具 → Application → Cookies → 清空对应域名下所有 phpMyAdmin 相关项) - phpMyAdmin 缓存了配置:删掉
tmp/目录(如/var/lib/phpmyadmin/tmp/)或设置$cfg['TempDir']并清空其内容 - Web 服务器(如 Nginx)启用了 fastcgi_cache 或 proxy_cache,可能缓存了登录页的 Set-Cookie 响应头,需临时关闭或清理
- PHP OPcache 缓存了
config.inc.php,执行sudo systemctl restart php*-fpm或opcache_reset()(如果能访问)
验证是否生效及后续注意事项
登录后打开浏览器开发者工具,看 Network → 登录请求的响应头中 Set-Cookie 是否变成你指定的名称,例如:Set-Cookie: mydb_admin_session=abc123...; path=/; HttpOnly。同时检查错误日志:/var/log/apache2/error.log 或 /var/log/php-fpm/www-error.log,若出现 Blowfish secret is too short 或 Cannot start session without errors,说明 blowfish_secret 不合规或路径读取失败。
注意:每次升级 phpMyAdmin 后,config.inc.php 不会被覆盖,但如果你用的是包管理器安装(如 apt),它可能把默认配置重写到 config.sample.inc.php,你的自定义配置不会自动迁移——升级后务必再核对一遍。



















