phpmyadmin 5.x 默认关闭多个高危功能,但必须手动配置$cfg['servers'][$i]['auth_type']为'cookie'或'http'、$cfg['allowarbitraryserver']=false、$cfg['uploaddir']=''、$cfg['savedir']=''及非空32位blowfish_secret才生效。
直接替换文件不等于安全升级——5.x 版本默认关闭了多个高危功能,但必须手动启用配置项,否则新版本和旧版在安全行为上几乎没区别。
确认当前安装方式和路径再动手
升级前先搞清你用的是哪种部署:YUM 安装(如 CentOS)、APT(Ubuntu)、XAMPP 内置、phpstudy_pro 或手动解压到 Web 根目录。不同方式的路径、权限、配置文件位置差异很大,乱覆盖会直接导致 500 错误或登录失败。
- YUM/Apt 安装:配置文件通常在
/etc/phpMyAdmin/config.inc.php,程序文件在/usr/share/phpmyadmin/(CentOS)或/usr/share/phpmyadmin/(Ubuntu) - XAMPP:路径是
/Applications/XAMPP/xamppfiles/htdocs/phpmyadmin/(macOS)或C:\xampp\phpMyAdmin\(Windows) - phpstudy_pro:需进软件界面找“网站”→“phpmyadmin”右键查看真实路径,通常是
PHPServer\phpmyadmin\类似结构 - 手动部署:配置文件
config.inc.php一定在 phpMyAdmin 目录内,且必须保留——但要检查它是否被放在 Web 可访问路径下(比如直接放在/var/www/html/里),这是严重风险
升级后必须检查的 4 个安全配置项
phpMyAdmin 5.x 默认禁用了很多功能,但这些开关不会自动写入你的旧 config.inc.php。只换代码不改配置,等于穿新衣走老路。
-
$cfg['Servers'][$i]['auth_type']必须是'cookie'或'http',绝不能是'config';否则数据库密码明文暴露在 PHP 文件里 -
$cfg['AllowArbitraryServer'] = false—— 防止 URL 传参指定任意 MySQL 主机,旧版常被用于 SSRF 攻击 -
$cfg['UploadDir'] = ''和$cfg['SaveDir'] = ''—— 空字符串表示禁用服务端 SQL 文件上传/保存目录,避免恶意文件写入 -
$cfg['blowfish_secret']必须是非空字符串(至少 32 字符随机值),否则 cookie 认证无法生成有效 token,登录会反复跳转或报错
常见升级失败现象及对应操作
不是所有“升级完成”都真能用。以下错误基本都指向配置或权限问题,而非版本本身。
- 访问
/phpmyadmin显示 403 Forbidden:Web 服务器用户(如apache或www-data)对新目录无读取权限,运行sudo chown -R apache:apache /usr/share/phpmyadmin(CentOS)或sudo chown -R www-data:www-data /usr/share/phpmyadmin(Ubuntu) - 登录页空白或报
PHP Parse error:PHP 版本过低(5.1+ 要求 PHP 7.4+),执行php -v确认,必要时先升级 PHP - 登录成功但提示 “No activity since …” 或反复要求登录:
$cfg['blowfish_secret']为空或太短,或 session 存储路径不可写(检查session.save_path的 PHP 配置) - 导入大 SQL 文件失败、报内存不足:新版默认限制更严,需在
php.ini中调高upload_max_filesize、post_max_size、memory_limit
别忽略 config.inc.php 的权限和位置
很多升级后被黑的案例,根源不在 phpMyAdmin 本身,而在配置文件放错了地方或权限过大。
-
config.inc.php绝不能放在 Web 可访问目录下(比如/var/www/html/config.inc.php),应移到 Web 根目录外(如/etc/phpMyAdmin/config.inc.php),并在代码中用require_once引入 - 该文件权限必须是
600或640,执行chmod 600 /etc/phpMyAdmin/config.inc.php,否则 Web 服务器可能被强制返回源码 - 如果用了 YUM/Apt 升级,注意包管理器可能把新配置模板覆盖掉旧配置——升级前备份
config.inc.php,升级后手动合并关键项,不要全盘覆盖
真正麻烦的从来不是下载和解压,而是配置项迁移和权限校验。一次升级里,花 10 分钟改配置,比花 2 分钟复制文件重要得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











