我尝试通过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博客文章中找到更多信息。