根本原因是mysqli扩展未被web sapi加载,需确认实际php.ini路径、启用extension=mysqli(或php_mysqli.dll)、设准extension_dir绝对路径、重启对应服务,并用phpinfo()和test脚本验证功能可用性。
phpmyadmin 显示“缺少 mysqli 扩展。请检查 php 配置”,根本原因几乎总是 mysqli 扩展没被 php web sapi(比如 apache 或 php-fpm)真正加载——不是配置写错了,也不是文件损坏,而是扩展压根没进加载队列。
确认 Web 环境实际加载的 php.ini 路径
改错 php.ini 是白忙一场。PHP CLI 和 Web 模式用的配置文件通常不同:php --ini 输出的是命令行路径,对 Web 无效。
- 在 Web 根目录建个
info.php,内容只写<?php phpinfo(); ?> - 浏览器访问
http://localhost/info.php,搜索 “Loaded Configuration File” - Windows 下常见路径是
C:WINDOWSphp.ini或 phpStudy 安装目录下的phpphp.ini;Linux 下 Apache 通常是/etc/php/*/apache2/php.ini,FPM 是/etc/php/*/fpm/php.ini
启用 mysqli 扩展并校验 extension_dir
找到上一步确认的 php.ini,编辑以下两处,缺一不可:
- 取消注释
extension=mysqli(PHP 7.4+)或extension=php_mysqli.dll(旧版 Windows),确保这行**没有分号开头** - 取消注释
extension_dir,且必须填**绝对路径**,例如extension_dir = "D:\php\ext";Windows 下写相对路径"./ext"会静默失败 - 检查该路径下确实存在
mysqli.so(Linux/macOS)或php_mysqli.dll(Windows)
重启对应服务,别只重启网站
改完 php.ini 后,必须重启承载 PHP 的服务,而不是刷新页面或重启网站:
- Apache:运行
sudo systemctl restart apache2(Linux)或在 phpStudy 控制面板点「重启 Apache」 - PHP-FPM:运行
sudo systemctl restart php*-fpm(如php8.1-fpm) - IIS(Windows):必须执行
iisreset /RESTART,仅重启网站或应用程序池无效
重启后,再次打开 info.php,搜索 “mysqli” —— 应该能看到完整模块信息块,而不仅是 “mysqlnd”。
验证扩展是否真能工作,不止是“已加载”
php -m | grep mysqli 成功只代表模块注册了,不代表它能初始化。phpMyAdmin 启动时会调用 mysqli_report() 等函数,若底层依赖(如 mysqlnd)缺失或冲突,仍会静默退出导致白屏。
- 写个测试脚本
test_mysqli.php:<?php var_dump(function_exists('mysqli_connect'));—— 应输出bool(true) - 如果为
false,检查错误日志:error_log配置项指向的文件(如/var/log/php_errors.log),或 Web 服务日志(如/var/log/apache2/error.log),找类似Unable to load dynamic library 'mysqli'的报错 - PHP 5.3+ 已弃用
libmysql.dll,改用内嵌mysqlnd;若你手动复制了旧版libmysql.dll到system32,反而可能引发符号冲突,建议彻底删除
最容易被忽略的点:phpMyAdmin 版本与 PHP 大版本不兼容。例如 PHP 8.0+ 必须用 phpMyAdmin 5.1+,旧版(如 4.9)即使扩展加载成功也会因函数废弃而崩溃——此时白屏不是扩展问题,而是版本断层。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











