尝试在我的MAMP设置上安装mongoDB。我有MAMP 3.05,它是PHP 5.5.10附带的。使用从mongo网站的说明安装mongo,它似乎运行正常。从mongo github页面抓取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 ?
如果使用的phpize
命令版本正确,请与which 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
来配置扩展。
你必须先做这个
sudo cp -r /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/php /usr/include/php