点击导出按钮无反应且控制台报“$ is not defined”,说明jQuery未成功加载,需检查主题目录下js/vendor/jquery/jquery.min.js是否存在、权限是否正确、Web服务器是否拦截.min.js文件,并临时禁用uBlock Origin等脚本拦截插件验证。
$ is not defined
这是最常见的情况:phpmyadmin 依赖 jquery,但页面根本没加载成功。不是主题装错了,而是主题目录里的 js/vendor/jquery/ 路径下文件不可读,或者被 web 服务器拦截了。
Network 标签页,刷新页面,筛选 jquery —— 看 jquery.min.js 是否返回 404 或 403themes/pmahomme/)下是否存在 js/vendor/jquery/jquery.min.js,且文件权限允许 Web 进程读取(www-data 或 nginx 用户能访问).min.js 结尾的文件(尤其当用了安全规则模板),查 Web 日志里是否有类似 access denied to "/phpmyadmin/themes/xxx/js/vendor/jquery/jquery.min.js" 的记录Network 中 export.php 返回 500 或空白前端 JS 已发出请求,但后端 PHP 执行崩溃了。这和主题本身关系不大,但主题启用后可能触发了某些未初始化的扩展逻辑(比如新主题调用了 mbstring 函数,而该扩展未启用)。
export.php 报的致命错误,常见有:Allowed memory size exhausted、Call to undefined function mb_strlen()
mbstring 和 zlib 扩展已启用(主题压缩、多字节字符串处理都依赖它们)export.php 开头加两行调试:ini_set('display_errors', '1'); error_reporting(E_ALL);,再点导出,看是否输出明确错误部分主题(尤其是自定义或第三方主题)会在初始化时动态修改 $cfg 配置,若覆盖了 pmadb、bookmarktable 等关键项,会导致控制用户功能失效,表现为“设置未完成”提示反复出现,或点击“关系视图”、“列注释”等按钮无响应。
theme.php 或 setup.php(如有)是否重写了 $cfg['Servers'][$i] 数组,特别是删掉了 'pmadb' 或改写了表名前缀pma_token 和 pmadb —— 若后者消失或值为空,说明主题干扰了配置加载流程pmahomme,确认高级功能恢复正常;再逐行注释掉新主题的 theme.php 中疑似初始化代码,定位问题段themes/ 目录权限错误导致 CSS/JS 404,间接引发按钮失效主题图标、样式、JS 依赖的静态资源全靠 Web 服务器直出。如果 themes/ 或其子目录权限不对,浏览器连 theme.css 和 common.js 都加载不了,整个 UI 逻辑就断了——按钮虽渲染出来,但绑定事件的 JS 根本没执行。
themes/ 目录及其所有子目录必须对 Web 进程可读可执行(即至少 755,不能是 750 或 700)www-data:www-data(Debian/Ubuntu)或 nginx:nginx(CentOS/RHEL),不能是 root
ls -Z themes/,确认上下文是 httpd_sys_content_t(Apache)或 httpd_sys_rw_content_t(需写临时文件);否则用 chcon -R -t httpd_sys_content_t themes/ 修复$cfg['ThemePath'] 是否以 ./ 开头(如 ./themes),写成绝对路径或 URL 会导致所有资源请求 404Network 里哪几个资源 404、哪个 PHP 请求 500——这些才是真实线索。