2014-07-07 101 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爲了讓它工作,也許系統鏈接指向較舊的那個。

問候!