正确包名是phpmyadmin(全小写无下划线),直接yum install phpMyAdmin会失败;必须先启用匹配系统版本的EPEL源,安装后需配置Web服务器别名、SELinux布尔值、PHP扩展及设置blowfish_secret。
包名是 phpmyadmin,不是 phpMyAdmin
直接 yum install phpmyadmin 会失败,因为 epel 仓库里实际的包名是全小写、无下划线的 phpmyadmin。这是新手最常卡住的第一步——搜到的教程写法不一致,复制粘贴就报 no package phpmyadmin available。
正确命令只有这一种:
yum install phpmyadmin
但前提是 EPEL 源已启用,且版本匹配:
- RHEL/CentOS 7:
yum install epel-release - RHEL/CentOS 8:
yum install epel-release(EPEL 8 已内置) - RHEL/CentOS 9:
dnf install epel-release
装完必须执行 yum clean all && yum makecache,否则 yum repolist 里看不到 epel 源,phpmyadmin 就搜不到。
安装后默认无法访问,403 是常态
phpmyadmin 安装只是把文件解压到 /usr/share/phpmyadmin/,Apache/Nginx 默认禁止该路径被外部访问,直接打开 /phpmyadmin 就是 403 Forbidden。
立即学习“PHP免费学习笔记(深入)”;
关键动作不是改 PHP 配置,而是配 Web 服务器:
- Apache:检查
/etc/httpd/conf.d/phpmyadmin.conf是否存在;若存在但被注释或权限限制,需放开Require规则(如改为Require all granted) - Nginx:没有现成配置,必须手动加
location /phpmyadmin { alias /usr/share/phpmyadmin/; ... },且要显式支持fastcgi_pass - 快捷方式(仅测试用):
ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
注意:Apache 2.2 和 2.4 的语法不同,Order Deny,Allow 在 2.4+ 已废弃,混用会导致配置失效。
SELinux 和 PHP 扩展缺一不可
页面能打开但提示 Cannot log in to the MySQL server,大概率不是密码错,而是 SELinux 或 PHP 缺扩展挡在前面:
- SELinux 必须运行:
setsebool -P httpd_can_network_connect_db 1,否则 Apache 进程连不上本地 MySQL socket 或 3306 端口 - PHP 至少要装:
php-mbstring、php-openssl、php-json、php-zip;CentOS 7 默认 PHP 5.4 缺zip,RHEL 9 默认 PHP 8.2 不兼容 phpMyAdmin 4.x(需用 5.x) -
blowfish_secret必须设,位置在/etc/phpMyAdmin/config.inc.php,值不能为空字符串
漏掉任意一项,登录页可能渲染失败、提交无响应,或直接跳回登录页不报错。
配置文件路径和 auth_type 别写错
主配置文件是 /etc/phpMyAdmin/config.inc.php,不是 /usr/share/phpmyadmin/libraries/config.default.php —— 后者是只读模板,改了也没用。
最关键的几行必须对齐实际环境:
-
$cfg['Servers'][$i]['host'] = 'localhost';—— 多数情况不用动,除非 MySQL 在另一台机器 -
$cfg['Servers'][$i]['auth_type'] = 'cookie';—— 推荐用cookie,config方式会把账号密码明文写进配置,极不安全 -
$cfg['Servers'][$i]['AllowNoPassword'] = false;—— 如果 MySQL root 没设密码,得改成true,否则连不上
改完记得重启 Web 服务:systemctl restart httpd 或 systemctl restart nginx,光 reload 不一定生效。



















