访问phpMyAdmin提示MySQLi扩展缺失,疑PHP版本不一致求解答
问题分析与解决方案
你的怀疑完全正确!这种情况大概率是因为Apache使用的PHP环境和终端CLI的PHP环境是完全独立的,phpMyAdmin调用的是Apache加载的PHP模块,而你在终端用php -m查询的是CLI版本的PHP配置,两者的配置文件、启用的模块可能完全不一样,这就是矛盾点所在。下面一步步帮你排查解决:
确认Apache与CLI使用的PHP版本/配置文件差异
终端里的PHP和Apache加载的PHP是两个独立的程序:- CLI版本的PHP是你在终端直接调用的,它的配置文件通常在
/etc/php/7.0/cli/php.ini这类路径下 - Apache加载的是PHP模块(比如
libphp7.0.so),它的配置文件可能在/etc/php/7.0/apache2/php.ini(不同系统路径可能有差异)
你之前修改的php.ini大概率是CLI版本的,而Apache对应的php.ini里MySQLi扩展依然被注释,所以phpMyAdmin检测不到。
- CLI版本的PHP是你在终端直接调用的,它的配置文件通常在
用phpinfo验证Apache的PHP环境
快速确认的方法是新建一个phpinfo.php文件,内容如下:<?php phpinfo(); ?>把这个文件放到Apache的网站根目录(比如
/var/www/html),然后访问http://localhost/phpinfo.php,重点看这几个信息:- PHP Version:确认Apache加载的是不是你预期的PHP7.0,有没有可能是其他版本(比如PHP5.6或者更高的7.x分支)
- Loaded Configuration File:找到当前Apache使用的php.ini的具体路径
- mysqli模块状态:页面里搜索“mysqli”,如果没有相关模块信息,说明这个PHP环境确实没启用mysqli
开启Apache对应PHP的mysqli扩展
根据phpinfo里找到的php.ini路径,打开这个文件,找到类似;extension=mysqli.so的行,把前面的分号;去掉(分号是注释符),保存文件后重启Apache服务:sudo systemctl restart apache2之后刷新phpMyAdmin页面,应该就能解决缺失提示的问题了。
额外检查:是否安装了Apache对应的mysqli包
如果你修改配置后还是不行,可能是没安装Apache版本PHP对应的mysqli扩展包。以Ubuntu/Debian系统为例,执行以下命令安装:sudo apt-get install php7.0-mysqli安装完成后同样需要重启Apache服务。
内容的提问来源于stack exchange,提问作者Dmitry Php
相关产品推荐
相关产品推荐

