2

我正在尝试让最新的 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.

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

我执行以下操作:

phpize
./configure
make
sudo make install

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

第一个是zend_config.h,实际上我只有另外两个文件:

zend_config.nw.h
zend_config.w32.h

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

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

4

3 回答 3

3

我按照在 Mac OS X 下使用 MAMP 开发 MongoDB Web 应用程序中的说明在OS X 10.7.3 上使用 php 5.3 成功构建 MAMP 的 mongo.so。

于 2012-06-14T19:50:44.813 回答
2

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

就个人而言,我很难让 MAMP 的 php 版本与我尝试制作的扩展构建很好地配合使用。

我发现问题在于 MAMP 确实没有设置为一般添加扩展,并且在编译 mongo php 驱动程序期间,它没有将其安装在正确的位置 - 所以我按照以下教程为额外的 pecl 和 pear 扩展准备 MAMP

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

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

于 2013-08-03T13:38:32.883 回答
0

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

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

  2. 卸载mongo驱动

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

    sudo pecl install mongo
    
于 2012-12-27T19:40:32.530 回答