需要安装的扩展为:
extension=php_mongodb.dll
根据官方的指引:PHP: Installing the MongoDB PHP Driver on Windows - Manual 1
需要到 GitHub 上下载扩展,然后进行安装。
这里的版本选择有些讲究。
首先1.51 是 mongoDB 的驱动版本号,选择最新的就可以了。
8.1 是你的 PHP 版本号,你需要根据你安装的 PHP 版本来选择不同的文件。
TZ 是线程安全,NTZ 非线程安全。一般我们会选择线程安全。
X86 和 X 64 为操作系统的位,如果你是 64 位的操作系统,你就可以选择 64 位的。
如果选择错了,XAMPP 在重启的时候会报错,说你的驱动装不上去。
修改 php.ini
修改 php.ini 配置信息,让 Apache 能够载入 mongoDB 的扩展。
虽然我们下载的文件名称为 php_mongodb.dll,但是在加载扩展的时候,只需要写 mongodb 就可以了,不需要写完整的扩展名字。
常见的配置错误信息
我们可能会遇到下面的一些常见问题。
PHP Warning: PHP Startup: Unable to load dynamic library
'php_mongodb.dll' (tried: \\xampp\\php\\ext\\php_mongodb.dll (The
specified module could not be found),
\\xampp\\php\\ext\\php_php_mongodb.dll.dll (The specified module could
not be found)) in Unknown on line 0 [Thu Feb 23 08:27:36.477428 2023]
[mpm_winnt:notice] [pid 11368:tid 460] AH00354: Child: Starting 150
worker threads.
上面的问题就是你扩展名字使用得不对,然后 Apache 提示 PHP 找不到对应的扩展。
把扩展名改一下就可以了。
PHP Warning: PHP Startup: Unable to load dynamic library
'mongodb' (tried: \\xampp\\php\\ext\\mongodb (The specified module could
not be found), \\xampp\\php\\ext\\php_mongodb.dll (The specified module
could not be found)) in Unknown on line 0 [Thu Feb 23 08:31:34.326869
2023] [mpm_winnt:notice] [pid 23212:tid 464] AH00354: Child: Starting
150 worker threads.
上面的问题是你下载扩展的 PHP 版本不兼容。
原因是,我们的 PHP 是 8.1 的,但是扩展我们却使用了 7.1,这个会提示上面的错误信息。
PHP Warning: PHP Startup: Unable to load dynamic library
'mongodb' (tried: \\xampp\\php\\ext\\mongodb (The specified module could
not be found), \\xampp\\php\\ext\\php_mongodb.dll (%1 is not a valid
Win32 application)) in Unknown on line 0 [Thu Feb 23 08:35:09.928157
2023] [mpm_winnt:notice] [pid 14060:tid 460] AH00354: Child: Starting
150 worker threads.
上面的问题是,你使用的操作系统是 64 位的操作系统,但是你却安装了一个 86(32位)操作系统的扩展。
xampp 通常能够在日志上提供完整的信息,因此只需要根据日志进行修改就可以了。
校验
随后打开 php 的配置信息页面。
如果你能和下面的图一样看到 PHP 有关 mongodb 的配置信息的话,则说明 mongodb 在你的环境下的配置已经成功了。
https://www.ossez.com/t/window-php-xampp-mongodb/14333