【问题标题】:PHP startup mongo: Unable to initialize modulePHP启动mongo:无法初始化模块
【发布时间】:2012-11-11 11:11:04
【问题描述】:

我目前正在为 PHP 使用 xampp。我在我的系统中安装了 *mongo_db(1.8.5)* 并在我的系统中安装了 xampp-1.8.1-VC9。为了为 mongoDB 配置 PHP,我下载了 *php_mongo.dll*(尝试了 VC9 thread safenon-thread safe)并将 .dll 文件粘贴到 em>'../php/ext' 目录,并在 php.ini 文件中添加了extension=php_mongo.dll

现在,当我尝试在 xampp 中启动 apache 时,即使 apache 正在启动,它仍会显示以下显示。

PHP startup mongo: Unable to initialize module
Module compiled with module API : 20090626
PHP compiled with module API : 20100525
These options need to match.

我的 .php 代码也无法连接 Mongo。这意味着某处有问题。

我哪里出错了。任何帮助将不胜感激。

【问题讨论】:

  • 看起来你有正确的方法,但正在复制错误的 DLL(请参阅下面的答案)。另请注意,1.8.x 现在是落后的两个主要生产版本系列(最新的是 2.2.x)。如果您刚刚开始,最好从 2.2 服务器开始,因为有 many new features

标签: php mongodb dll installation xampp


【解决方案1】:

您似乎正在尝试使用 PHP 5.4 安装为 PHP 5.3 编译的扩展;模块API版本需要与PHP版本相匹配。

如果您从 Github 下载 precompiled MongoDB PHP driver(例如,php_mongo-1.2.12.zip 是当前的稳定版本),它包含多个 PHP 版本(例如 5.2、5.3 和 5.4)的 DLL。您需要为您的系统复制正确的 DLL 并将其重命名为 php_mongo.dll。

您可以从系统上的phpinfo() 输出(或命令行中的php -i)确定所需的版本。检查“Zend Extension Build”的值。

例如:

Zend Extension Build => API220100525,NTS,VC9

.. 表示您应该使用 NTS(非线程安全)DLL。

在 64 位 Windows 上,这意味着将 php_mongo-1.2.12-5.4-vc9-nts-x86_64.dll 复制到您的 PHP 扩展目录中的 php_mongo.dll

【讨论】:

  • 感谢@stennie。这就是我要找的。​​span>
  • 谢谢,也帮助了我
猜你喜欢
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2012-08-22
  • 2018-08-24
  • 2012-11-28
相关资源
最近更新 更多