繁体   English   中英

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

[英]How to build mongo.so or PHP with the correct module api version

尝试在我的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?

请使用以下命令检查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来配置扩展名。

你必须先做

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM