升级phpmyadmin需先备份config.inc.php,再手动部署新版并复用原host、user、blowfish_secret配置;yum升级不可靠,须避免覆盖配置文件、修复session目录权限,并强制限制访问ip或修改入口路径。

直接替换旧版会丢配置,必须先备份再迁移
旧版 phpMyAdmin 的核心配置全在 config.inc.php 里,直接覆盖目录会导致登录失败、数据库连接丢失。升级前务必保留这个文件——它通常位于 /var/www/phpmyadmin/ 或 /usr/share/phpMyAdmin/ 下,不是 config.sample.inc.php。
实操建议:
- 先确认当前配置路径:
find /var/www /usr/share -name "config.inc.php" 2>/dev/null - 备份整个旧目录:
cp -r /var/www/phpmyadmin /var/www/phpmyadmin.bak - 记录下
$cfg['Servers'][$i]['host']、$cfg['Servers'][$i]['user']、$cfg['blowfish_secret']这三项的值,新版必须复用
YUM 升级看似简单,但 CentOS 7/8 默认源常滞后或缺失
执行 yum install phpmyadmin 很可能装到 4.4.x(CentOS 7)或根本找不到包(CentOS 8+),因为 EPEL 源未启用或已弃用。这不是你操作错,是源本身不维护了。
更可靠的做法是手动部署:
- 从官网下载最新稳定版:
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz(注意核对 当前最新版号) - 解压后只复制内容,不覆盖原
config.inc.php:tar -xzf phpMyAdmin-5.2.1-all-languages.tar.gz && cp -r phpMyAdmin-5.2.1-all-languages/* /var/www/phpmyadmin/ - 修复权限(尤其当 Web 服务用户是
nginx或apache):chown -R nginx:nginx /var/www/phpmyadmin
升级后登录报 “Error during session start” 多半是 session 目录权限问题
PHP 升级或系统更新后,/var/lib/php/session 所有者常变成 root:root,而 Nginx/Apache 进程以 nginx 或 apache 用户运行,无法写入 session 文件,导致 cookie 认证失败。
检查并修复:
- 确认 Web 服务用户:
ps aux | grep -E "(nginx|httpd|apache)" | head -1,看 USER 列 - 修正 session 目录归属:
chown -R nginx:nginx /var/lib/php/session(若用 Apache,则换成apache:apache) - 不要直接
chmod 777—— 这会引发安全警告,且新版phpMyAdmin在检测到宽松权限时可能拒绝启动
暴露在公网的 phpMyAdmin 必须加访问控制,否则极易被爆破
很多升级失败的案例,其实不是技术问题,而是升级后仍开着 /phpmyadmin 或 /pma 这类默认路径,被扫描器盯上。宝塔面板 7.4.2 及更早版本就因此出现过未授权访问漏洞。
最小成本加固方式(Nginx 示例):
location /phpmyadmin {
satisfy all;
allow 192.168.1.0/24; # 仅允许内网
allow 203.0.113.42; # 或指定运维 IP
deny all;
alias /var/www/phpmyadmin/;
index index.php;
}
如果必须外网访问,至少改掉 URL 路径(如用 alias /db-admin),并配合 Nginx Basic Auth 或反向代理前置 Cloudflare Access 等机制。别省这一步——配置再新,裸奔也扛不住自动化攻击。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











