使用MAMP的Mongo PHP驱动程序1.2.10

时间:2012-06-01 19:54:58

标签: php mongodb mamp

我正在尝试使用最新的Mongo驱动程序在OS X 10.5.8上使用MAMP 1.9.6。

我是从源代码成功构建的,因为它似乎没有预编译的版本,包含在正确的目录中并重新启动了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。更新: 我终于能够同步phpize的API版本。

但是现在我再也无法构建驱动程序了。

我执行以下操作:

phpize
./configure
make
sudo make install

但是在make命令中,我遇到了大量的语法错误。似乎找不到几个头文件。

第一个是zend_config.h,我真的只有其他两个文件:

zend_config.nw.h
zend_config.w32.h

我下载了MAMP组件以获取此文件。为什么我错过了这个?还有很多其他的。

我正在使用PHP 5.3.5有没有办法从不同的源获取这些头文件?

3 个答案:

答案 0 :(得分:3)

我按照Develop MongoDB web apps with MAMP under Mac OS X的说明在OS X 10.7.3上使用php 5.3为MAMP成功构建了mongo.so。

答案 1 :(得分:2)

我是出于历史目的而添加此内容 - 我保证如果你遇到同样的问题,你会想要这样做。

就个人而言,我真的很难让MAMP的php版本与我试图制作的扩展版本很好地配合。

我发现问题是MAMP实际上还没有设置添加扩展,并且在编译mongo php驱动程序时,它没有安装在正确的地方 - 所以我跟着关于preparing MAMP for additional pecl and pear extensions的教程。

按照这些步骤准备MAMP以添加扩展程序后,您可以轻松安装任何扩展程序。

在开始讨论添加扩展的部分,使用sudo pecl install mongo并从MAMP界面重新启动apache。

答案 2 :(得分:0)

从PHP 5.3升级到5.4时遇到了同样的问题,并且能够通过以下步骤解决它:

  1. 确保升级php5-cli以及php5和php5-common

  2. 卸载mongo驱动器

    sudo pecl uninstall mongo
    
  3. 重新安装mongo驱动程序

    sudo pecl install mongo