gpt4 book ai didi

php - - mongodb/mongodb 1.2.0 需要 ext-mongodb ^1.3.0 -> 您的系统中缺少请求的 PHP 扩展 mongodb

转载 作者:IT王子 更新时间:2023-10-29 01:07:27 25 4
gpt4 key购买 nike

在 Debian Jessie 上,Apache2 --version "0.91-ubuntu1", PHP 5.6.30。

我在搜索主题时尝试了很多已经回答的问题。

1) 我手动安装了 MongoDB PHP 驱动程序 http://php.net/manual/en/mongodb.installation.manual.php

2) 为了检查它是否有效,我创建了一个文件 testMongo.php 并添加了

< ?php phpinfo(); ?>

3) 在浏览器中运行 testMongo.php 可以找到配置文件。

/etc/php5/apache2/php.ini

4)可以使用命令定位我的mongo.so文件

php -i | grep extension_dir

5) 输出为:

extension_dir => /usr/lib/php5/20131226 => /usr/lib/php5/20131226

6) 在这个文件中,我在“动态扩展”之后添加了

extension=/usr/lib/php5/20131226/mongo.so

7) 然后我转到Composer并进行了命令行安装

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

8) 安装 Composer 后,我尝试了:

php composer.phar require mongodb/mongodb

但是这会导致以下消息:

  Problem 1
- mongodb/mongodb 1.2.0 requires ext-mongodb ^1.3.0 -> the requested PHP extension mongodb is missing from your system.
- mongodb/mongodb 1.2.0 requires ext-mongodb ^1.3.0 -> the requested PHP extension mongodb is missing from your system.
- mongodb/mongodb 1.2.0 requires ext-mongodb ^1.3.0 -> the requested PHP extension mongodb is missing from your system.
- Installation request for mongodb/mongodb ^1.2 -> satisfiable by mongodb/mongodb[1.2.0].

有些人在帖子中提到我可以使用 --ignore-platform-reqs有用!

当我运行时:

# php5 index.php

$client = new MongoDB\Client(< connection to mongo-atlas>) //Works with python

我收到以下错误:

PHP Fatal error:  Class 'MongoDB\Driver\Manager' 
not found in /var/www/vendor/mongodb/mongodb/src/Client.php on line 83

最佳答案

Composer 在那里给了你正确的答案,你使用了错误的库。不要使用--ignore-platform-reqs,或者你可以强制安装它。您现在需要做的是检查哪个库适合您的 php 版本。写

php --version

如果你不知道你用的是哪一个。输出应该是这样的:

PHP 5.6.30-0+deb8u1 (cli) (built: Feb  8 2017 09:49:20)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

在下面的列表中找到您的版本。

参见mongodb中的描述:PHP-Driver for mongodb

Driver compatibility

前往 pecl并下载适合您的 php 版本号的版本。

在你的情况下(PHP5.6):

$ wget https://pecl.php.net/get/mongodb-1.2.11.tgz
$ tar -xvzf mongodb-1.2.11.tgz
$ cd mongodb-1.2.11/
$ phpize
$ ./configure
$ make all -j 5
$ sudo make install

现在它应该可以工作了。

您可以使用此代码测试 php mongodb 连接(查找 ObjectId):

<?php
# filename ConnectMongo.php
require_once __DIR__ . "/vendor/autoload.php";

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// connect to mongodb
$manager = new MongoDB\Driver\Manager('mongodb://username:password@host');

$id = new \MongoDB\BSON\ObjectId("5a0c8e2362eb6404c2f10032");
$filter = ['_id' => $id];
$options = [];

$query = new \MongoDB\Driver\Query($filter, $options);
$rows = $manager->executeQuery('db.collection', $query);
foreach ($rows as $document) {
var_dump($document);
}
?>

在终端写这个来测试连接:

$ php ConnectMongo.php

确保你也使用 composer 安装,你不应该再得到同样的错误。

关于php - - mongodb/mongodb 1.2.0 需要 ext-mongodb ^1.3.0 -> 您的系统中缺少请求的 PHP 扩展 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47272688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com