插件激活提示缺少 mysqli 扩展,通常是因为 PHP 环境未安装或未启用该模块,而非代码错误。Linux 系统需通过包管理器安装对应版本扩展,Windows 系统需在 php.ini 中取消注释,操作后必须重启 Web 服务。
先说结论:这是环境配置缺失导致的致命错误,不是插件代码问题,需按操作系统启用 mysqli 扩展。
- 先确认:运行 php -m 查看当前已加载扩展列表
- 先处理:Linux 装包、Windows 改配置、Mac 用 brew 重配
- 再验证:重启服务后通过 phpinfo 页面检查模块是否存在
命令速用版
根据操作系统选择对应命令,注意 PHP 版本号需严格匹配。
# Ubuntu/Debian (假设 PHP 8.1)
sudo apt install php8.1-mysql
sudo systemctl restart apache2
# CentOS/RHEL
sudo dnf install php-mysqli
sudo systemctl restart php-fpm
# Windows (php.ini 配置)
extension=mysqli
extension_dir="ext"为什么会这样
mysqli 扩展未启用时,PHP 无法调用数据库连接函数,导致插件初始化失败。
PHP 7.0 已彻底移除旧的 mysql_connect 函数,必须使用 mysqli 或 PDO。如果扩展未加载,调用 mysqli_connect 会直接报 Fatal error。这通常是因为配置文件注释了扩展行,或系统未安装对应的扩展包。
分步处理
按以下顺序排查,避免盲目重装 PHP。
1. 确认 PHP 版本与配置文件路径
运行 php -v 查看版本,运行 php `--ini` 查看加载的 php.ini 路径。CLI 命令行和 Web 服务可能使用不同的配置文件,需分别检查。
2. 安装或启用扩展
Linux 包管理器用户直接安装对应版本包,如 php8.1-mysql。Windows 用户打开 php.ini,找到;extension=mysqli 去掉分号。确保 extension_dir 指向正确的 ext 目录。
3. 重启 Web 服务
修改配置后必须重启 Apache、Nginx 或 PHP-FPM 服务,否则配置不生效。
怎么验证是否生效
命令行运行 php -m | grep mysqli,若有输出则表示 CLI 环境已生效。
Web 环境需新建 info.php 文件写入<?php phpinfo(); ?>,浏览器访问查看是否有 mysqli 模块区块。若命令行有但网页没有,说明 Web 服务的 php.ini 未配置正确。
常见坑
- 版本号不匹配:安装了 php-mysql 但当前 PHP 是 8.1 版本,包名需带版本号。
- 配置文件混淆:修改了 CLI 的 php.ini 却重启了 Apache,导致 Web 环境依旧报错。
- 扩展目录错误:Windows 下 extension_dir 未指向 ext 目录,导致找不到 dll 文件。
常见问题
为什么不能用 mysql_connect 函数?
该函数在 PHP 7.0 已被移除,必须改用 mysqli 或 PDO 扩展。
安装了扩展为什么还提示缺少?
通常是因为未重启 Web 服务,或 Web 服务加载了另一个 php.ini 配置文件。
phpStudy 环境怎么开启?
在 phpStudy 面板切换 PHP 版本,进入设置开启 mysqli 扩展,并重启 Apache。
参考来源
- 提示缺少 mysqli 扩展怎么办_PHP 组件安装指南
- 解决 phpstudy 的 php 版本问题,phpMyAdmin - 错误缺少 mysqli 扩展
- php 格式文件打开提示缺少扩展_php 扩展安装方法【技巧】
- 打开 php 文件提示缺少扩展_怎么安装 php 扩展【详解】
- php 缺少 mysqli 扩展是什么原因