我有一个Symfony 2应用程序,它正在使用Doctrine MongoDB ODM,我正试图用PHP 7运行它。
我已经成功安装了PHP7,但通过Composer安装依赖项让我很难过,出现了以下错误:
doctrine/mongodb 1.0.x-dev requires ext-mongo >=1.2.12,<1.7-dev -> the requested PHP extension mongo is missing from your system.
我设法通过apt:安装了PHP 7 mongo扩展
apt-get install php7.0-mongo
可以肯定的是,我还通过PECL:安装了mongodb
扩展
sudo apt-get install -y php-pear php7.0-dev libcurl3-openssl-dev
sudo pecl install mongodb
然而,我仍然得到一个错误,即找不到mongo扩展。似乎存在版本差异,需要ext-mongo >=1.2.12
,但只安装了1.1.6
:
$ php -i | grep mongo
/etc/php/7.0/cli/conf.d/20-mongodb.ini,
mongodb
mongodb support => enabled
mongodb version => 1.1.6
mongodb stability => stable
libmongoc version => 1.3.5
mongodb.debug => no value => no value
安装Doctrine ODM for PHP 7所需的mongo扩展的正确方法是什么?
在PHP7上,您无法安装mongo
扩展。你能做的就是安装https://github.com/alcaeus/mongo-php-adapter首先,安装学说。
composer require alcaeus/mongo-php-adapter
在composer.json中我添加了
"provide" : {
"ext-mongo": "*"
},
在"需要"之前,这将强制安装最新的扩展
为了在MongoDB中使用Symfony,您需要:
- Symfony:显然:-)
- Symfony Doctrine-MongoDB捆绑包(Doctrine/MongoDB-odm-Bundle):该捆绑包将Doctrine2 MongoDB对象文档映射器(odm)库集成到Symfony中
- Doctrine-MongDB对象文档映射器(Doctrine/MongoDB-odm):为MongoDB提供PHP对象映射功能的库
- MongoDB适配器(alcaeus/mongo-php-Adapter):它提供了在mongo-php-library之上构建的ext-mongo的API,与php 7兼容
- MongoDB驱动程序库(MongoDB/MongoDB):围绕PHP的底层驱动程序提供高级抽象
- MongoDB PHP扩展:PHP和HHVM的底层驱动程序扩展。请注意MongoDB驱动程序。不要使用遗留的MongoDB驱动程序(http://php.net/manual/en/book.mongo.php)
您可以按照此处的说明进行操作:"如何使用MongoDB安装Symfony3"
它是为Symfony3编写的,但为Symfoy2编写的是同一问题。问题是PHP7+mongodb驱动程序+条令。