phpMyAdmin无需编译,解压+配置config.inc.php(含blowfish_secret)+启用PHP扩展(mbstring、mysqlnd等)+正确设置权限即可运行;yum install在CentOS 7因PHP路径冲突不适用。

直接说结论:phpMyAdmin 本身不需要「编译」,它是纯 PHP 脚本,只需解压 + 配置 + 权限调整即可运行;但若你用的是 PHP 7.4(尤其是源码编译安装的),必须确保 php-mbstring、php-xml、php-json、php-zip 和 php-mysqlnd 这几个扩展已启用,否则访问时会报白屏或 500 错误。
为什么不能用 yum install phpmyadmin?
CentOS 7 官方 base 仓库不提供 phpMyAdmin;EPEL 仓库里的 phpmyadmin 包默认依赖系统自带的 PHP(通常是 5.4 或 7.2),与你手动编译的 PHP 7.4 二进制和扩展路径不兼容——它会尝试加载 /usr/lib64/php/modules/xxx.so,而你的 PHP 7.4 扩展很可能在 /usr/local/php74/lib/php/extensions/no-debug-non-zts-20190902/ 这类路径下,导致 Extension not found 或启动失败。
常见错误现象:
- 打开
/phpmyadmin/页面空白,PHP 错误日志里出现Call to undefined function mb_detect_encoding() - 登录页提示
The mbstring extension is not available - 配置文件保存后仍无法登录,
session_start()失败且/var/lib/php/session权限不对
下载与解压到 Nginx/Apache 可访问路径
不要放在 /root 或普通用户家目录——Web 服务进程(如 nginx 或 apache)无权读取。推荐放至 /usr/share/nginx/html/(Nginx)或 /var/www/html/(Apache):
立即学习“PHP免费学习笔记(深入)”;
cd /usr/local/src wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz tar -zxvf phpMyAdmin-5.2.1-all-languages.tar.gz -C /usr/share/nginx/html/ mv /usr/share/nginx/html/phpMyAdmin-5.2.1-all-languages /usr/share/nginx/html/phpmyadmin
注意:phpmyadmin 目录名必须全小写,部分 Nginx 配置默认区分大小写,大写开头(如 PhpMyAdmin)会导致 404。
关键配置:config.inc.php 与 blowfish_secret
进入 /usr/share/nginx/html/phpmyadmin/,复制样例配置:
cp config.sample.inc.php config.inc.php
编辑 config.inc.php,重点改两处:
-
$cfg['blowfish_secret'] = 'a8#kL2!pQ9@zR$';—— 必须填 32 字符以内任意字符串,不能为空,否则 cookie 认证失败 -
$cfg['Servers'][$i]['host'] = 'localhost';—— 若 MariaDB 不在本机,改成实际 IP;若用 socket 连接(更安全),设为'localhost:/var/lib/mysql/mysql.sock'
别动 $cfg['Servers'][$i]['auth_type'] = 'cookie';——这是最稳妥的登录方式,避免把数据库密码硬编码进配置。
权限与扩展:PHP 7.4 源码安装后的典型坑
假设你用 --prefix=/usr/local/php74 编译了 PHP,那么:
- 确认
php.ini中已启用必要扩展:检查/usr/local/php74/etc/php.ini是否包含这些行(未注释):extension=mbstringextension=xmlextension=jsonextension=zipextension=mysqliextension=pdo_mysql - 重启 PHP-FPM:
sudo systemctl restart php-fpm(如果你用 FPM)或重启 Apache/Nginx - 修复 session 目录权限:
sudo chown -R nginx:nginx /var/lib/php/session(Nginx)或apache:apache(Apache) - 创建并授权 tmp 目录:
mkdir /usr/share/nginx/html/phpmyadmin/tmp && chmod 777 /usr/share/nginx/html/phpmyadmin/tmp,否则模板缓存失败,页面极慢
最后检查 PHP 实际加载的扩展:/usr/local/php74/bin/php -m | grep -E "(mbstring|mysql|xml|json)" —— 缺哪个就去对应 ext/ 目录重新 make && make install 对应模块。
真正卡住的地方往往不是下载或解压,而是 PHP 扩展路径没对上、session 目录属主错了、或者 blowfish_secret 漏填——这三个点反复验证一次,基本就能进登录页了。



















