2012-06-01 92 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。

相关问题