32位Windows Server 2019下PHP 8.2连接MongoDB缺失php_mongodb.dll求助
解决32位Windows Server 2019下PHP 8.2连接MongoDB的问题
方案1:手动编译32位php_mongodb扩展
由于官方不再提供32位PHP 8.2的mongodb预编译扩展,手动编译是可行路径:
- 准备依赖:
- 安装Visual Studio 2019(必须包含C++桌面开发组件)
- 下载32位PHP 8.2开发包(文件名格式如
php-devel-8.2.x-Win32-vs16-x86.zip) - 下载32位MongoDB C Driver静态库
- 编译步骤:
- 解压PHP开发包到本地目录(如
C:\php-dev),设置环境变量PHP_DEV_DIR指向该目录 - 解压MongoDB C Driver,设置环境变量
MONGOC_DIR指向其根目录 - 打开Visual Studio的x86开发者命令提示符,切换到PHP扩展源码目录(可从PECL下载mongodb扩展源码包解压)
- 依次执行命令:
phpize configure --enable-mongodb nmake - 编译完成后,在
Release子目录找到php_mongodb.dll,复制到PHP的ext目录,然后在php.ini中添加extension=mongodb
- 解压PHP开发包到本地目录(如
方案2:降级PHP版本
PHP 7.4及更早版本仍有官方提供的32位mongodb预编译扩展,可考虑降级到兼容版本:
- 下载32位PHP 7.4安装包及对应版本的
php_mongodb.dll - 替换现有PHP环境,更新IIS站点的PHP处理程序映射
- 注意:需确保MongoDB服务器版本与降级后的PHP驱动版本兼容
方案3:通过中间层间接连接
如果编译和降级都不可行,可搭建中间层服务实现PHP与MongoDB的交互:
- 用Node.js/Python等语言编写简单的API服务,直接连接MongoDB并提供HTTP接口
- PHP通过
curl或HTTP客户端库调用这些接口,间接完成数据操作
内容的提问来源于stack exchange,提问作者TonyShark007
相关产品推荐
相关产品推荐

