phpmyadmin主界面不显示服务器负载信息需手动注释模板中echo pma_getserverinfo();调用,因其无对应$cfg['showserverload']配置项,该信息由硬编码函数动态生成并嵌入header.inc.php,仅注释或css隐藏无法阻止系统命令执行。
phpmyadmin 主界面不显示服务器负载信息,本质是禁用 pma_getserverinfo() 的调用——它不是开关配置项,必须手动注释或删除模板中对应代码段。
为什么 config.inc.php 里找不到 load / cpu / uptime 相关配置
phpMyAdmin 没有提供 $cfg['ShowServerLoad'] 或类似选项。所谓“服务器负载信息”实际是 PMA_getServerInfo() 函数返回的整块 HTML,内容包括 MySQL 版本、PHP 版本、操作系统、Web 服务器类型,以及(在部分环境)uptime 和 load average —— 这些由 PHP 的 shell_exec('uptime') 或 sys_getloadavg() 等函数动态拼接,硬编码在模板里。
常见错误是去翻 config.inc.php 找不到对应键名,就改 $cfg['ShowVersion'] 或加 CSS 隐藏,结果右上角小字还在闪,甚至刷新后又出现。
- 该信息渲染位置:v5.2+ 在
/templates/header/header.inc.php;旧版(v4.x)可能在/libraries/display_setup.lib.php - 关键标识:搜索
<div class="server-info"> 或 <code><div class="topmenu-server-info">,或直接找 <code>echo PMA_getServerInfo() - 路径示例:
/usr/share/phpmyadmin/templates/header/header.inc.php(Debian/Ubuntu),C:\xampp\phpMyAdmin\templates\header\header.inc.php(Windows XAMPP)
直接注释 PMA_getServerInfo() 调用最可靠
打开对应 header.inc.php 文件,定位到输出服务器信息的那一行(通常在 <div id="serverinfo"> 内部),把它用 PHP 注释包裹:<pre class="brush:php;toolbar:false;"><?php /* echo PMA_getServerInfo(); */?></pre>
<p>注意:<strong>不要只删 HTML 标签或只注释 echo 前面的 div</strong>,否则可能残留空容器或 JS 初始化失败。完整注释函数调用才能彻底切断数据源。</p>
<p>改完后必须做两件事:</p>
<ul>
<li>清空浏览器缓存(Ctrl+F5 或 Cmd+Shift+R),phpMyAdmin 会缓存导航栏 DOM 结构约 30 秒</li>
<li>如果启用了 OPcache(尤其 Debian/Ubuntu 默认开启),需执行 <code>sudo systemctl reload php*-fpm 或 sudo phpdismod opcache && sudo phpenmod opcache 强制重载
为什么不用 CSS 或 JS 隐藏
CSS 隐藏(如 .topmenu-server-info { display: none; })会留白、触发重排、且在 CSP 严格策略下可能被拦截;JS 方案(如 document.querySelector('.topmenu-server-info')?.remove())存在明显闪动,因为 DOM 已渲染完成才执行移除。
更关键的是:这些方法完全无法阻止 PMA_getServerInfo() 内部调用 shell_exec('uptime')——这意味着每次页面加载,PHP 仍会执行系统命令、消耗资源、增加潜在攻击面(尤其当 disable_functions 未禁用 shell_exec 时)。
所以,真正“不显示”,不是让它藏起来,而是让它根本别运行。
改完还看到 uptime 或 load average?检查这几点
即使注释了 PMA_getServerInfo(),某些定制化部署(如 Docker 镜像、cPanel 封装版)可能把负载信息塞进其他位置:
- 检查是否启用了
$cfg['Servers'][$i]['verbose']并设为服务器主机名,有时会意外带出系统信息 - 确认没在
config.inc.php中启用$cfg['ShowPhpInfo'] = true;,它会在设置页暴露更多底层细节 - 某些第三方主题或插件(如 pma-extended-theme)会自行注入服务器状态,需排查
themes/目录下的自定义模板 - MySQL 层若配置了
performance_schema开启且用户有权限,部分视图可能间接泄露负载指标,但这已超出 phpMyAdmin 控制范围
最稳妥的做法永远是:找到源头函数,让它不执行。其他都是补丁,不是解决。











