2016-05-20 2 views
1

Я новичок в Ubuntu 16.04. Я хочу выполнить подключение php 7 и mongoDB 2.6. Я много google, но я ничего не мог найти. Может кто-нибудь дать шаг за шагом процесс для настройки подключения, пожалуйста. Также я мало знаю о системе ubuntu, поэтому, пожалуйста, объясните также эти шаги. И извините, если мой английский ошибается.mongoDB и php подключение ubuntu 16.04

ответ

2

установить драйвер де в PHP PHP/Ext/водитель --- вы скачать здесь канд 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); 
+0

, в котором файл php.ini, я должен добавить расширение = php_mongodb (в апача/php.ini или CLI/php.ini) –

2

Я использую версию PHP 7.0 на ubuntu 16.04. Я даю подробную информацию для решения проблемы подключения. Сначала я вручную установил 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 при запуске системы, выполните следующие действия:

Создать файл mongodb.service в/и т.д./Systemd/система/введя команду:

$ 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) Установка драйвера Монго-PHP:

$ sudo pecl install mongodb 

Также вы можете получить сообщение об ошибке: phpize не найдено. Phpize - это команда, которая используется для создания среды сборки. Эта ошибка может появиться во время установки любого расширения расширения. Для решения этой проблемы команда phpize не найдена, пользователь должен установить пакет php5-dev. Чтобы установить его, введите команду:

$ sudo apt-get install php7.0-dev 

Затем в файле php.ini, который находится в /etc/php/7.0/apache2 каталоге, добавьте расширение Монго DB:

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

Добавьте следующая строка в файле:

extension = mongodb.so;

(Только так вы знаете, точное местоположение файла mongodb.so в /usr/lib/php/20151012/mongodb.so.)

Так Монго дб устанавливается вместе с драйвером.

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); 

Для fe собных данные:

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

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

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

Спасибо за обновленный ответ. Хотя я использовал «extension = mongodb.so» вместо «mongo.so». Папка «/ usr/lib/php/20151012 /» является папкой расширения по умолчанию, поэтому нет необходимости явно указывать это. – garyF

+0

Я подтверждаю, что библиотека теперь называется 'mongodb.so', и поэтому я должен сделать – fillobotto

+0

Thanx @fillobotto для обновления. –