2014-07-07 54 views
3

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

我也读过使用非线程安全版本的驱动程序修复了这个问题。

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版但是当我使用它,而开始wampserver我得到这个错误(PHP 5.5.12)
  • MongoDB的Win32的i386-2.6.3(x86)的
  • php_mongo-1.5.4-5.5-vc11.dll PHP驱动

而刚刚提到,在mongodb的安装在c:\mongodb\和wampserver安装在c:\wamp

我感谢有这方面的帮助。

编辑:问题并没有消失,所以我不得不寻找另一个网站服务器,我发现zWamp这是一个PHP/MySQL的/阿帕奇/ MongoDB的堆栈和它的作品!

+0

你没有提到你的PHP版本是nts或ts? –

+0

@AmolMKulkarni在phpinfo中它表示线程安全已启用。 – Nojan

+0

什么是'php_mongo-1.5.4-5.5-vc11-x86_64.dll'出来的? –

回答

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适合我。

+0

如果这是你的问题,那么对于WAMPServer 2.5,你将需要一个VC11编译线程安全DLL – RiggsFolly

+0

@RiggsFolly正如我所提到的,我使用vc11线程安全的dll文件并没有错误地打印符文,但我有警告签名旁边的扩展名,我不能访问Mongo类在PHP – Nojan

0

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

4

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

0

确保您已将PHP安装目录添加到系统环境变量PATH。 我正在使用Mongo驱动程序v1.5。8,它运作良好。 PHP手册中提到: “这个扩展需要以下文件是在PATHlibsasl.dll” 你可以找到在PHP的安装目录libsasl.dll

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 

作为新行至其他扩展= ...线是

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

重启wampserver,现在是工作的罚款,本书虽然Wampserver仍然显示了三角警示牌PHP管理部分中的mongo .dll。

+1

上帝保佑你我的兄弟。它的工作,非常感谢。 – fkabeer

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服务器。

+0

我尝试了很多东西,没有任何工作。但你的答案适合我! php_mongo-1.5.1.zip它是! :) – Manfred

0

我也有这个问题,这是我使用的是什么:

的Windows 10,64位

WAMP 2.5,64位

PHP 5.5.12

MongoDB的3.2

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

  1. 更新从5.5.12 WAMP的PHP版本,31年5月5日(最新的),我几乎跟着指示在这里:Upgrading WAMP PHP,我只是跟着,直到第5步,添加新后版本不要忘了切换到新版本,只需点击WAMP图标 - > PHP->版本 - > 5.5.31

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

    extension = 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的PHP 5.5线程安全(TS )x64(假设所有的WAMP库都必须是线程安全的)

  4. 我也终于不得不将我编辑的php.ini文件复制到Apache文件夹中:wamp \ bin \ apache \ apache2.4.9 \ bin为了让它工作,也许系统链接指向较旧的那个。

问候!