必须将自定义主题置于./themes/custom/下,直接修改pmahomme会被升级覆盖;需复制完整结构、匹配compat_version、配置ThemePath和ThemeDefault,并清空浏览器缓存。
主题必须放在 ./themes/custom/ 下,不能动 pmahomme
直接改 themes/pmahomme/ 里的 css 或图片,升级 phpmyadmin 后全被覆盖——这不是你操作错了,而是 phpmyadmin 升级机制本身就会重写这个目录。官方明确要求自定义主题必须置于 ./themes/custom/ 子目录下,且目录名不能含空格、大写或点号。
实操步骤:
- 在
./themes/下新建custom目录(若不存在) - 把
pmahomme整个复制进./themes/custom/mytheme/(路径最终为./themes/custom/mytheme/css/theme.css) - 确保
mytheme/内含theme.json、css/、img/、templates/等完整结构 -
theme.json中的"compat_version"必须与当前 phpMyAdmin 主版本号一致(如"5.2"),填"5"或"5.2.1"都不加载
配置 $cfg['ThemePath'] 和 $cfg['ThemeDefault'] 要写对路径和名字
只放对文件还不够。phpMyAdmin 默认不启用主题切换,必须显式配置,且顺序有影响:这些配置项得加在 $cfg['Servers'][$i]['auth_type'] = 'cookie'; 之后,否则可能被忽略。
关键配置项(加在 config.inc.php 末尾即可):
-
$cfg['ThemeManager'] = true;(5.0+ 默认 true,但旧版可能为 false,建议显式声明) -
$cfg['ThemePath'] = './themes';——注意开头的./,写成'themes'或绝对路径都不生效 -
$cfg['ThemeDefault'] = 'mytheme';——值必须与./themes/custom/mytheme/的目录名完全一致(区分大小写)
改完务必清空浏览器缓存(Ctrl+F5 或隐身窗口),否则仍加载旧 CSS。
立即学习“PHP免费学习笔记(深入)”;
图标丢失?先关 CDN,再查 fonts/ 和 MIME 类型
换主题后导航栏图标变成方块,大概率是 FontAwesome 字体没加载成功。国内环境常因 CDN 被拦截导致 @font-face 请求失败,而 phpMyAdmin 默认走 CDN。
解决办法:
- 在
config.inc.php中加:$cfg['FontAwesome'] = false;,强制走本地字体 - 确认
./themes/custom/mytheme/fonts/下存在fontawesome-webfont.woff2(不是 .ttf 或 .eot) - Apache 用户需在配置中添加:
AddType font/woff2 .woff2;Nginx 用户要在types块里加font/woff2 woff2; - 用浏览器 Network 面板过滤 Font 类型,看
fontawesome-webfont.woff2是否返回 200;403 或 404 就是权限或路径问题
改颜色、删 PHP 标志、调 NULL 高亮,都得靠 CSS 注入,别硬改原始文件
所有视觉定制——比如选中行背景色、NULL 单元格底色、左侧 PHP 文字标识——本质都是 CSS 控制。但直接改 common.css 或 theme.css 会随升级消失,且容易被 JS 动态类权重覆盖。
更稳的做法:
- 在
mytheme/css/theme.css末尾追加样式,并带上!important(例如.null { background-color: #ffebee !important; }) - 删左侧 PHP 标志:替换
./themes/custom/mytheme/img/logo_left.png,并在 CSS 中写#left_panel h1 a { background-image: url(../img/logo_left.png) !important; text-indent: -9999px; } - 禁用 CSS 合并(防止你的修改被压缩覆盖):
$cfg['EnableBundledScripts'] = false;
真正卡住人的往往不是不会改,而是改了没生效——多数时候是因为浏览器缓存了旧 CSS、服务器缓存了压缩文件(./js/dist/theme.min.css)、或 Web 服务器拒绝了 themes/ 目录访问。动手前先用隐身窗口验证路径是否可直访。



















