用wampserver安装PHP扩展最惨痛的一次经历,一个简单的mongodb扩展,搞了一天没装上,最后重装Wampserver才成功.

1.php安装mongodb扩展,需要先通过phpinfo()确认当前运行环境.打开phpinfo()的方式,可以在wampserver homepage的工具链接打开,也可以自建一个php网页,通过代码打开:
<?php
phpinfo()
?>

2.如下图,确认以下参数:
当前的PHP运行版本:7.3.12
处理器架构:64位
PHP扩展的关键参数:TS

3.php官网上面monodb的版本有很多,需要下载适合环境的package,下载链接如下:
https://pecl.php.net/package/mongodb
我选了最新的1.9.1稳定版,接着选择跟PHP拓展环境相匹配的DLL包:7.3 Thread Safe (TS) x64


4.下载完成后将压缩包里面的php_mongodb.dll解压到PHP扩展目录,比如:D:\wamp64\bin\php\php7.3.12\ext

5.接着打开D:\wamp64\bin\php\php7.3.12\phpForApache.ini,在文件末尾添加一行:extension=php_mongodb.dll

6.最后重启一下Wampserver服务,到这里全部配置结束!重新加载phpinfo(),在当前页面搜索”mongodb”,可以看到php的拓展信息:

最后说说我被自己挖的坑,坑了一天的惨痛经历.....
按前面的步骤操作之后,我用自己网站下的php文件查询phpinfo(),结果很悲剧,不显示mongodb的拓展信息,PHP网页连接MongoDB的代码报错:
Class 'MongoDB\Driver\Manager' not found

复查了PHP官方的Mongodb安装指南,前面操作没有问题.重启Wampserver后检查php error log,也没有任何异常错误.
百度了一下,有人说要打开D:\wamp64\bin\apache\apache2.4.41\bin\php.ini配置extension=php_mongodb.dll才行,我看了那个文件的属性,其实它是个快捷方式,连接指向D:\wamp64\bin\php\php7.3.12\phpForApache.ini,打开后果然看到Mongodb已经添加好了.


也有人说要改D:\wamp64\bin\php\php7.3.12\php.ini这个文件,这个其实是命令行模式(CLI)的配置,同样可以加上extension=php_mongodb.dll,重启服务后运行CMD,输入命令php -m后能查到新增加了mongodb模块,说明可以在命令行操作mongodb,但对网页没啥帮助.


PHP官方网站还提到了环境变量问题,我就把D:\wamp64\bin\php\php7.3.12添加到path里,重启服务后没效果.不死心,把D:\wamp64\bin\apache\apache2.4.41\bin也添加到path同样没效果.


有没可能是dll文件的版本选错了呢?我把新版,旧版,匹配的不匹配的,甚至连废弃的mongo模块也下载测试了,结果都解决不了问题.
被逼无奈下,换了台电脑安装wampserver,经过前面几步简单的配置,Mongodb一次性就安装成功了.
接下来在自己电脑做好网站的备份,然后彻底删除Wampserver,再重新安装,结果也是一次性安装成功.
问题出在哪里呢?
重新配置网站的时候发现了问题,原来以前的Wampserver是用一机多站的方式配置网站.Mongodb所在的网站恰好不是默认的网站,我给忘记了,忘记了,忘记了....
而Wampserver的Apache组件显示不支持非默认站点的PHP拓展,不支持,不支持,不支持......
重装Wampserver后,我用虚拟主机重建了两个网站,Mongdb模块用不了的问题终于完美解决.


