phpMyAdmin 5.2.1 是 PHP 8.1 环境下的安全适配版本,必须使用 tar.gz 包而非 zip 或 latest/master 分支,需配置 blowfish_secret、host 为 127.0.0.1、正确端口,并确保 mysqli 扩展启用及 Apache alias 正确加载。
phpMyAdmin 5.2.1 是 PHP 8.1 的安全选择
php 8.1 环境下必须用 phpmyadmin-5.2.1-all-languages.tar.gz,别下 .zip、别用 latest 或 master 分支。后者依赖 php 8.2+ 的 mb_ord() 等函数,而 php 8.1 没这函数,一访问就报 call to undefined function mb_ord(),页面直接白屏。
下载地址固定为:https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz。Synology 或 Ubuntu 解压都更稳;Windows 用户用 7-Zip 打开 tar.gz 也比双层 zip 更可靠。
- 别用 PHP 8.2+ 版本的 phpMyAdmin,哪怕只是“看起来更新”
- 别手动改
config.default.php—— 它是只读模板,改了也不生效 - 解压后目录名必须全小写:用
phpmyadmin,不是phpMyAdmin(IIS 和 Synology 都对大小写敏感)
配置文件三处必改,多改反而登录失败
config.inc.php 只需动三行,其余保持默认。改多了会触发 CSRF 校验失败、跳转异常或空白登录页。
-
$cfg['blowfish_secret'] = 'Xk9qL2mN8vRzFpW4sT6y';—— 必须非空,20 位以上随机字母数字即可,不能留空 -
$cfg['Servers'][$i]['host'] = '127.0.0.1';—— 不要写localhost,MySQL 8+ 默认禁用 socket 连接,localhost会走 socket 导致拒绝连接 -
$cfg['Servers'][$i]['port'] = '3306';或'3307'—— 群晖等环境 MySQL 可能监听非标端口,务必和实际一致
改完检查权限:Linux 下确保 www-data(Ubuntu)或 apache(CentOS)可读;Synology 上用 File Station 右键 →「属性」→「权限」→ 给 web 用户组「读取/执行」。
Apache 下 404 或下载 PHP 文件?先查 mod_php 和 alias
Ubuntu 常见症状:访问 /phpmyadmin 返回 404,或浏览器直接下载 index.php 文件 —— 这说明 PHP 模块没启用,或 alias 没加载。
立即学习“PHP免费学习笔记(深入)”;
- 运行
a2enmod php8.1(版本号必须和你装的一致),不是php或php8 - 确认
/etc/apache2/conf-enabled/phpmyadmin.conf存在且非空;不存在就手动建,内容里必须含<directory></directory>和Require all granted - Alias 行必须写成
Alias /phpmyadmin /usr/share/phpmyadmin,路径前后都不能多/少斜杠 - 改完必须
systemctl restart apache2,reload不够
mysqli 扩展缺失?别装 php-mysqlnd
登录页报 The mysqli extension is missing,说明 PHP 虽然跑起来了,但没连上 MySQL 驱动。
- 先验证:
php -m | grep mysqli,无输出即未启用 - 装包:
apt install php-mysql(Ubuntu/Debian),不是php-mysqlnd—— 后者在 phpMyAdmin 5.2.1 下偶发连接超时或认证失败 - 检查
/etc/php/8.1/apache2/conf.d/20-mysqli.ini是否存在且未被注释 - 重启 Apache,不是 reload,是
systemctl restart apache2
最易忽略的是:群晖 Web Station 必须在虚拟主机设置里「启用 PHP」并明确选中 7.4 或 8.1 —— 勾选不等于启用,版本下拉框必须手动点一次才真正生效。



















