登录
首页 >  文章 >  php教程

XAMPP环境安装MongoDB XAMPP与NoSQL集成开发

时间:2026-05-04 11:48:02 146浏览 收藏

哈喽!今天心血来潮给大家带来了《XAMPP环境安装MongoDB XAMPP与NoSQL集成开发》,想必大家应该对文章都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习文章,千万别错过这篇文章~希望能帮助到你!

XAMPP控制面板不提供MongoDB服务选项,因其官方仅集成Apache、MySQL、PHP、Perl,MongoDB需独立安装并手动注册为系统服务;PHP连接前必须确保mongod进程运行于27017端口。

XAMPP环境安装MongoDB XAMPP与NoSQL集成开发

为什么XAMPP控制面板里找不到MongoDB服务选项

XAMPP 本来就不支持 MongoDB 作为“服务”集成——它压根没这个设计。Apache Friends 官方只打包 Apache、MySQL、PHP、Perl 四个组件,mongod 是独立进程,和 XAMPP 控制面板完全无关。你看到的“Service”列表(mysql、apache)是 XAMPP 自己管理的 Windows 服务,而 mongod 必须手动注册为系统服务,或用 CMD 启动。误以为勾选某个选项就能启用 MongoDB,会导致后续所有连接失败都往 PHP 扩展上找原因,实际 mongod 根本没跑。

下载 php_mongodb.dll 时最常踩的三个版本坑

扩展加载失败 90% 出在版本不匹配。不是“下个最新版就行”,必须同时对齐三要素:

  • PHP 版本:用 php -v 查,比如 PHP 8.2.12 → 就得选 82 开头的 DLL(不是 8183
  • 线程安全(TS/NTS):看 phpinfo() 页面里 Thread Safety 字段,XAMPP 默认是 enabled → 选 ts 后缀的 DLL(如 php_mongodb-1.19.3-82-ts-vc15-x64.dll
  • 架构(x64/x86):Windows 系统属性里看“系统类型”,绝大多数是 x64;若选错,Apache 启动时会报 %1 is not a valid Win32 application

PECL 官方下载页(https://windows.php.net/downloads/pecl/releases/mongodb/)按版本号分目录,进对应目录再挑带 tsx64 的 ZIP 包解压,只取里面的 php_mongodb.dll 文件。

php.ini 配置 extension=mongodb 还是 extension=php_mongodb.dll

必须写 extension=mongodb,不能写完整文件名。XAMPP 的 PHP 加载机制只认扩展名(不含 .dll),写成 extension=php_mongodb.dll 会触发两次查找:php_mongodb.dllphp_php_mongodb.dll.dll,最终全失败。

操作步骤很明确:

  • 把 DLL 放到 C:\xampp\php\ext\ 目录下
  • 编辑 C:\xampp\php\php.ini,在 ;extension=mysqli 附近新增一行:extension=mongodb
  • 保存后重启 Apache(不是只刷新页面),然后访问 http://localhost/dashboard/phpinfo.php 搜索 mongodb,确认模块已加载

测试连接前必须确认 mongod 是否真在监听 27017

PHP 报 Connection refusedFailed to connect to 127.0.0.1:27017,第一反应不该是重装扩展,而是立刻验证数据库服务本身:

  • 管理员身份打开 CMD,执行 netstat -ano | findstr :27017,有输出才说明 mongod 在监听
  • 如果没有,检查 mongod 是否已安装为服务:sc query MongoDB;若状态不是 RUNNING,运行 net start MongoDB
  • 如果服务启动失败,看日志路径(比如 C:\mongodb\log\mongod.log),常见原因是 --dbpath 目录不存在或权限不足
  • 最后才是测试 PHP 连接:$client = new MongoDB\Client("mongodb://127.0.0.1:27017"); var_dump($client->listDatabases());

很多人卡在第一步——mongod 没起来,却花几小时调 PHP 配置,纯属方向性错误。NoSQL 和 SQL 的本地开发逻辑不同:MySQL 是 XAMPP 自带的,MongoDB 是你额外加的独立服务,它的生命周期完全独立于 Apache。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>