编译错误Mongo-ext-PHP7通过PECL


Compilation error Mongo ext PHP 7 via PECL

我尝试通过PECL安装Mongo PHP扩展(对于PHP 7.0.5-4+donate.sury.org.xenial+1),方法是执行

sudo pecl install mongo-1.6.11

我尝试用这种方式安装它,因为我的Synfony3项目需要它(执行composer安装和安装MongoDB ODM)。

这个过程的所有开始都做得很好,但在编译部分我有一个错误:

/tmp/pear/temp/mongo/php_mongo.c:736:3: error: too many arguments to function ‘zend_hash_copy’
   zend_hash_copy(Z_ARRVAL_P(error_doc), Z_ARRVAL_P(document), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *));

你能帮我解决这个问题吗?我在Kubuntu 16.04下运行开发网站。

旧版驱动程序(即Mongo)不适用于PHP7,只有新的驱动程序(如MongoDB)可以与新的PHP一起使用(请参阅兼容性表)。假设你指的是Doctrine的MongoDB ODM,你仍然可以使用它,只需要将新的驱动程序与旧的polyfill结合起来,我建议你看看mongophp适配器。

此外,你可以在这篇ODM博客文章中找到更多信息。