我正在尝试使用最新的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有没有办法从不同的源获取这些头文件?
答案 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时遇到了同样的问题,并且能够通过以下步骤解决它:
确保升级php5-cli以及php5和php5-common
卸载mongo驱动器
sudo pecl uninstall mongo
重新安装mongo驱动程序
sudo pecl install mongo