2014-07-07 23 views
1

试图在我的MAMP安装程序上安装mongoDB。我有MAMP 3.05,它带有PHP 5.5.10。使用mongo website的指示安装了mongo,它似乎正常运行。从mongo github page中抓取mongo扩展,然后按照他们的说明构建并添加php.ini的扩展。如何使用正确的模块api版本构建mongo.so或PHP

一切似乎好,直到我重新启动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?

+0

你是否设置正确的'mongo.so'?有[不](http://serverfault.com/questions/563867/mongodb-unable-to-load-driver-on-php)似乎[是](http://php.net/manual/en/ mongo.installation.php)与[mongo扩展](http://stackoverflow.com/questions/17492015/does-php-5-5-work-with-mongodb-driver)和PHP 5.5的问题。也许仔细看看[OS X的PHP手册中的安装步骤](http://php.net/manual/en/mongo.installation.php)。 – GhostGambler

+0

@GhostGambler谢谢,但我尝试使用您提到的PHP安装页面进行安装;它涉及pecl。这根本不会构建,因为它找不到php.h.相反,我遵循github页面中的指示,我得到了mongo源代码。这构建了mongo.so。我不知道如何告诉它建立一个不同的模块版本的mongo.so。 – GreatBigBore

回答

1

如果使用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来配置扩展。

0

你必须这样做首先

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

阐述了一些解释..thankyou – nobalG

相关问题