2012-06-01 172 views
2

我試圖讓最新的Mongo驅動程序與OS X 10.5.8上的MAMP 1.9.6一起使用。Mongo PHP驅動程序1.2.10與MAMP

我從源代碼構建它,因爲它似乎沒有預編譯版本,將其包含到正確的目錄並重新啓動Apache。

但PHP無法識別擴展名。我以前使用的1.0.11驅動程序工作正常,但我需要新版本,因爲Doctrines ODM需要它。

當我用1.0.11替換1.2.10 mongo.so並重啓apache mongo時可用。我不明白什麼是錯的。

任何人有這種行爲或任何猜測得到這個工作?

更新:PHP錯誤日誌中顯示以下內容:

[01-Jun-2012 22:02:37] PHP Warning: PHP Startup: mongo: Unable to initialize module 
Module compiled with module API=20060613 
PHP compiled with module API=20090626 
These options need to match 
in Unknown on line 0 

我不太清楚這是什麼意思?

2.更新: 我終於能夠同步API版本phpize

但現在我無法再建立驅動程序了。

我做到以下幾點:

phpize 
./configure 
make 
sudo make install 

但在make命令我得到噸的語法錯誤。似乎它找不到幾個頭文件。

非常第一個是zend_config.h真的我只是與其他兩個文件:

zend_config.nw.h 
zend_config.w32.h 

我下載的是甲基苯丙胺成分得到這個文件。爲什麼我錯過了這一個?還有很多其他的。

我正在使用PHP 5.3.5有沒有辦法從不同的來源獲得這些頭文件?

+0

查找PHP啓動錯誤(在此處啓用日誌記錄)。我會說出於某種原因PHP無法加載二進制擴展。也許有些編譯問題。 – hakre

+0

添加了日誌文件行。 –

+0

好吧,正如它所說的,API版本不匹配。在編譯模塊時,請指定您需要使用API​​ 20090626.您已使用遠遠落後的API 20060613。 – hakre

回答

0

從PHP 5.3升級到5時遇到了同樣的問題。4,並能夠通過以下步驟來解決這個問題:

  1. 確保升級PHP5-CLI以及剛剛PHP5和PHP5常見

  2. 卸載蒙戈驅動

    sudo pecl uninstall mongo 
    
  3. 重新安裝驅動程序蒙哥

    sudo pecl install mongo 
    
+1

歡迎來到SO!關於你的答案只是一個評論。對於命令(sudo pecl ...),將它們格式化爲「代碼」可能會很好。這很容易通過編輯你的答案並在代碼周圍放置'字符或使用編輯窗口頂部的格式化工具來完成。謝謝! – Greg

+0

用MAMP 2.1.2查看php 5.4.10的這個答案http://stackoverflow.com/questions/3772582/mongodb-and-mamp/15531409#15531409 – AbdullahDiaa

2

我爲歷史目的添加了這一點 - 我保證,如果您遇到同樣的問題,您可能需要這樣做。

就我個人而言,我非常難以獲得MAMP的php版本,可以很好地與我試圖創建的擴展版本搭配。

我發現問題在於MAMP確實沒有被設置爲通常添加擴展名,並且在mongo php驅動程序的編譯期間,它並沒有將它安裝在正確的位置 - 所以我遵循preparing MAMP for additional pecl and pear extensions以下教程。

按照以下步驟準備添加擴展的MAMP,您可以輕鬆安裝任何擴展。

在開始討論添加擴展的部分,使用sudo pecl install mongo並從MAMP界面重新啓動apache。

相關問題