PHP v7.2.5无法找到MongoDB驱动扩展php_mongodb.dll问题求助
解决PHP启动时无法加载php_mongodb.dll的问题
我之前配置Laravel MongoDB扩展时也碰到过完全一样的报错,别慌,咱们从最常见的坑开始排查:
先确认你的dll版本和PHP环境完全匹配
这是90%的人会踩的坑!下载php_mongodb.dll时必须同时满足三个条件:- 和你的PHP主版本一致(比如你用PHP7.2,就选支持PHP7.2的扩展版本)
- 和PHP的架构匹配(32位PHP只能用32位dll,64位同理)
- 对应PHP的线程安全(TS)/非线程安全(NTS)模式
你可以在命令行执行php -v,输出里会明确显示这些信息,比如PHP 7.2.34 (cli) (built: Oct 6 2020 18:34:44) ( NTS MSVC15 x64 ),照着这个去PECL选对应的dll包。
检查dll文件的路径和php.ini配置
报错提示找不到C:\php\ext\php_mongodb.dll,先去这个目录确认文件真的存在,文件名有没有拼写错误(比如多了.dll后缀或者少了字母)。另外php.ini里的配置要确保是extension=php_mongodb.dll,不要手动加路径,PHP会自动去配置好的extension_dir(也就是你的ext目录)查找。安装对应的VC++运行库
很多PHP扩展依赖Visual C++ Redistributable包,比如如果你的PHP是MSVC15编译的,就需要安装VC++ 2017 Redistributable。如果这个系统库缺失,就算dll路径对了,系统也会提示找不到模块。重启服务和CLI环境
修改php.ini之后,一定要重启你的Web服务器(Apache/Nginx等);如果是用CLI模式(比如Laravel的artisan命令),记得关闭当前命令行窗口重新打开,确保新的配置生效。验证扩展是否加载成功
做完上面的步骤后,运行php -m命令,看看输出列表里有没有mongodb;或者创建一个phpinfo.php文件,访问它查看是否有mongodb的相关模块信息,确认加载成功。
内容的提问来源于stack exchange,提问作者Behnam Azimi
相关产品推荐
相关产品推荐

