如何使用正确的模块api版本构建mongo.so或PHP

时间:2014-07-07 20:28:19

标签: php mongodb mamp

尝试在我的MAMP设置上安装mongoDB。我有MAMP 3.05,它附带PHP 5.5.10。使用mongo website中的说明安装mongo,它似乎正常运行。从mongo github page抓取mongo扩展,并按照他们的指示构建并添加扩展到php.ini。

在重新启动MAMP之前,一切似乎都没问题。在php_error.log中,我看到了:

PHP Warning:  PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212
These options need to match
 in Unknown on line 0

看起来php的API编号是更高版本,因此不必重建旧版本的PHP会很好。有没有办法用正确的模块版本重建mongo扩展,还是我必须丢弃MAMP并手动构建PHP?

2 个答案:

答案 0 :(得分:1)

如果使用which phpize命令的正确版本,请使用命令phpize进行检查。这应该指向一个类似于PHP5安装的目录。我可以在/usr/bin/phpize中找到,这是默认的OS X安装。

您可以进一步运行phpize -v以检查其链接的API版本。在我的情况下(默认的OS X PHP安装),它输出:

Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525

如果输出的API版本与您所需的号码20121212(在我的情况下,20100412不匹配)不匹配,则表示您使用了错误的phpize来配置扩展名。

答案 1 :(得分:0)

你必须先这样做

 sudo cp -r /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/S‌​DKs/MacOSX10.10.sdk/usr/include/php /usr/include/php