MongoDB php扩展无法在Windows 7上运行

时间:2014-07-07 07:18:01

标签: php mongodb dll wamp windows-7-x64

我想在MongoDB上使用PHP5.5 Wampserver 2.5,但我无法使其正常运行。我使用this教程设置了MongoDB 2.6.3配置文件并运行了mongod.exe --install --config 'config_path'并添加了环境变量的路径,似乎已经安装了MongoDB服务并且工作正常。我还将线程安全的mongodb php驱动程序复制到php的ext文件夹中,并将extension=php_mongo.dll添加到php.iniapache/apache2.4.9/bin/中的php/php5.5.12个文件中{1}}文件夹。当我在php_mongo扩展名旁边运行wampserver there's a warning sign时。问题是我尝试安装x64版本的wampserver和MongoDB,但没有任何区别,我也没有在与此问题相关的日志中收到任何错误。

我还读到使用非线程安全版本的驱动程序可以解决问题。但是当我使用它时,我在启动wampserver时遇到此错误:

The program can't start because php5.dll is missing from you computer.
Try reinstalling the program to fix this problem.

PHP Startup: Unable to load dynamic library
'c:/wamp/bin/php5.5.12/ext/php_mongo.dll' - The specified module could not be found.

以下是我使用的软件集:

  • Windows 7旗舰版64位
  • Wampserver 2.5 x86版本(PHP 5.5.12)
  • MongoDB win32-i386-2.6.3(x86)
  • php_mongo-1.5.4-5.5-vc11.dll PHP驱动程序

就是说,安装在c:\mongodb\和wampserver中的mongodb已安装在c:\wamp

我很感激你的帮助。

编辑:问题没有消失,所以我不得不搜索另一个网络服务器,我发现zWamp是一个php / mysql / apache / mongodb堆栈,它可以工作!

7 个答案:

答案 0 :(得分:4)

我在使用Apache 2.4和PHP 5.5的Windows 8.1中遇到了同样的问题。我尝试从AWS“存储桶列表”下载的最新版本的mongo驱动程序1.5.5和1.5.4,但没有任何效果。 然后我尝试了1.5.1版本,现在一切正常,apache日志上的错误已经消失,并且在phpinfo()中显示了MongoDB支持。

答案 1 :(得分:2)

我用过这个并且工作:php_mongo-1.5.1.zip

安装mongodb后,我正在通过这个亚马逊桶列表(https://s3.amazonaws.com/drivers.mongodb.org/php/index.html)获取扩展dll文件。我已经采取了最新的zip文件并选择了dll文件,它为我的php版本(5.5.12)和架构(64)拍摄它没有成功。最后我尝试了php_mongo-1.5.1.zip dll(php_mongo-1.5.1-5.5-vc11-x86_64.dll)文件,其开始工作的mongo扩展细节可以在phpinfo()中看到。

在mongodb开始工作之前,别忘了启动mongod服务器。

答案 2 :(得分:1)

避免Wampserver 2.5管理"接口"并简单地将它放在两个php.ini文件中...在我的情况下,它们位于

C:\wamp\bin\php\php5.5.12

C:\wamp\bin\apache\apache2.4.9

我将扩展名添加为

extension=php_mongo-1.5.1-5.5-vc11-x86_64.dll 

作为其他extension = ...行的新行

(记得将DLL文件从您在此处下载的驱动程序文件https://s3.amazonaws.com/drivers.mongodb.org/php/index.html复制到文件夹C:\wamp\bin\php\php5.5.12\ext - 我使用的是1.5.1版本)

重新启动wampserver,它现在运行正常,但Wampserver仍在PHP管理部分的mongo .dll中显示警告三角形。

答案 3 :(得分:0)

确保使用MongoDB扩展的线程安全版本。在Windows(WAMP)上使用非线程安全版本时,我遇到了smae错误。只是一个正确的.dll文件解决了这个问题。

要下载扩展程序,请检查以下链接:http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows

更新:有4个文件,请根据您的机器配置选择合适的文件。 * -vc11 - ,* - vc11-nts,* -vc11-x86_64和* -vc11-nts-x86_64。 -vc11-x86_64 对我来说很好。

答案 4 :(得分:0)

如果你在php插件中的mongo之前收到警告标志,那么mongoDB驱动程序不会加载到php.ini中。添加extension = php_mongo-XX;(。已放置在php / ext文件夹中的.dll文件名)。警告标志将消失,mongoDB驱动程序将加载到php。

答案 5 :(得分:0)

确保将PHP安装目录添加到系统环境变量PATH。 我正在使用Mongo驱动程序v1.5.8,它运行良好。 PHP手册页说: “此扩展程序要求以下文件位于PATHlibsasl.dll ” 你可以在PHP安装目录中找到libsasl.dll

答案 6 :(得分:0)

我也有这个问题,这就是我正在使用的:

Windows 10,64位

Wamp 2.5,64 Bits

PHP 5.5.12

MongoDB 3.2

扩展名出现在php扩展列表中,但是没有出现在phpinfo中,我尝试了几乎所有版本的mongodb库,但是用这种方式解决了它:

  1. 将WAMP PHP版本从5.5.12更新到5.5.31(最新版),我几乎按照这里的说明进行操作:Upgrading WAMP PHP,我只是按照第5步的说法,添加新版本后别忘了只需点击WAMP图标切换到新版本 - > PHP->版本 - > 5.5.31

  2. 在我升级的PHP版本的php.ini文件中添加了扩展名,我在mysqli扩展名之后添加了它:

    延长= php_mongodb.dll

  3. 将我的升级版PHP中的MongoDB扩展名复制到/ ext文件夹,我使用了MongoDB 1.1.2驱动程序,它是新的和更新的库,它还取决于你的MongoDB版本,可以在这里找到:https://pecl.php.net/package/mongodb 在这里检查MongoDB库的兼容性:https://docs.mongodb.org/ecosystem/drivers/php/这个解决方案我使用版本1.1.2 for PHP 5.5线程安全(TS)x64(假设所有WAMP库都必须是线程安全的)

  4. 我最后也不得不将我编辑过的php.ini文件复制到Apache文件夹:wamp \ bin \ apache \ apache2.4.9 \ bin以使其工作,也许syslink指向较旧的文件夹。< / p>

  5. 问候!