mongoDB和php连接ubuntu 16.04

时间:2016-05-20 18:16:04

标签: php mongodb ubuntu

我是Ubuntu 16.04的新手。我想执行php 7和mongoDB 2.6连接。我google了很多,但我找不到合适的东西。任何人都可以一步一步地进行连接设置。另外我对ubuntu系统了解不多,所以请解释这些步骤。如果我的英语不对,请原谅我。

2 个答案:

答案 0 :(得分:2)

我在php中安装de驱动程序 php / ext / driver ---你在这里下载https://docs.mongodb.com/ecosystem/drivers/php/ 并在php / php.ini中 - > 延长= php_mongodb

并使用PHP 7使用类似

的内容
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$filter = [];
$options = [
'projection' => ['_id' => 0],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);  

答案 1 :(得分:2)

我在ubuntu 16.04上使用php 7.0版。我正在提供解决连接问题的详细信息。 首先我手动安装了mongodb,然后是mongodb-php驱动程序。

1)安装mongo db。输入以下命令:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

$ sudo apt-get update

$ sudo apt-get install -y mongodb-org

为了正确启动Mongdb作为服务,即在系统启动时自动启动Mongodb,请按照以下步骤操作:

输入命令在/ etc / systemd / system /中创建文件mongodb.service:

$ sudo nano /etc/systemd/system/mongodb.service

将以下内容粘贴到其中:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

然后输入以下命令:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2)安装mongo-php驱动程序:

$ sudo pecl install mongodb

此外,您可能会收到错误:找不到phpize。 Phpize是一个用于创建构建环境的命令。在安装任何pecl扩展时可能会出现此错误。为了解决找不到phpize命令的问题,用户必须安装php5-dev软件包。 要安装它,请输入命令:

 $ sudo apt-get install php7.0-dev

然后在/etc/php/7.0/apache2目录下的php.ini文件中,添加mongo db扩展名:

$ sudo nano /etc/php/7.0/apache2/php.ini 

在文件中添加以下行:

extension = mongodb.so;

(大家知道,mongodb.so文件的确切位置在/usr/lib/php/20151012/mongodb.so中。)

所以mongo db和它的驱动程序一起安装。

3)现在请记住mongo-php类已被更改。网络中的大多数可用资源使用被取代的旧类提供解决方案。以下是您可以参考的链接:

http://php.net/manual/en/set.mongodb.php

http://zetcode.com/db/mongodbphp/

以下是一些基本数据库操作的命令:

$mng = new MongoDB\Driver\Manager(); // Driver Object created

将数据插入数据库:

$bulk = new MongoDB\Driver\BulkWrite;

$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];

$bulk->insert($doc);

$mng->executeBulkWrite('dbName.collectionName', $bulk);

用于获取数据:

$query = new MongoDB\Driver\Query([]); 

$rows = $mng->executeQuery("dbName.collectionName", $query);

foreach ($rows as $row) 
    {
         echo "$row->data - $row->info\n";
    }