【问题标题】:Mongo PHP Driver 1.2.10 with MAMP带有 MAMP 的 Mongo PHP 驱动程序 1.2.10
【发布时间】:2012-06-01 19:54:57
【问题描述】:

我正在尝试让最新的 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 有没有办法从不同的来源获取这些头文件?

【问题讨论】:

  • 查找 PHP 启动错误(在此处启用日志记录)。我会说由于某种原因 PHP 无法加载二进制扩展。可能是一些编译问题。
  • 好吧,正如它所说,API 版本不匹配。在编译模块时,指定需要使用 API 20090626。您使用的 API 20060613 已经过时了。
  • AFAIK 这是您使用构建脚本指定的内容。另请参阅How to set the PHP Api Version for phpize,它没有完全回答这个问题(至少不是一般性的),但应该给你一些指示。
  • 我能够同步它,但正如你在上面看到的,我无法再构建它了。
  • 你下载了谁的 PHP 源代码吗?如果不从 git 获取它,请参阅 hakre.wordpress.com/2012/05/20/php-on-heroku-again ,向下滚动它有一个关于如何在从 github 下载整个 PHP 源代码时“从源”编译 PHP 模块的部分。

标签: php mongodb mamp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    我发现问题在于 MAMP 确实没有设置为一般添加扩展,并且在编译 mongo php 驱动程序期间,它没有将它安装在正确的位置 - 所以我按照关注preparing MAMP for additional pecl and pear extensions上的教程。

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

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

    【讨论】:

      【解决方案3】:

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

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

      2. 卸载mongo驱动

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

        sudo pecl install mongo
        

      【讨论】:

      • 欢迎来到 SO!只需对您的答案发表评论。对于命令(sudo pecl...),将它们格式化为“代码”可能会很好。这很容易通过编辑您的答案并将 ` 字符放在代码周围,或使用编辑窗口顶部的格式化工具来完成。谢谢!
      • 使用 MAMP 2.1.2 stackoverflow.com/questions/3772582/mongodb-and-mamp/…查看 php 5.4.10 的答案@
      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多