Как установить расширение Mongodb PHP в Ubuntu 16.04 LTS

Я использую Ubuntu 16.04 LTS и хочу использовать Mongodb с PHP. Для этого я попытался

sudo apt-get install php5-mongo

, что достаточно для Ubuntu 14.04 LTS будет достаточно, но я ошибся. Я получаю сообщение об ошибке:

E: Unable to locate package php5-mongo

Я только что обновил ОС машины до Ubuntu 16.04 LTS и хотел использовать mongodb с PHP 7.0.4.

Так, что я могу сделать, чтобы решить это?

27
задан 20 March 2019 в 15:29

5 ответов

Для установки mongodb расширения сделайте:

sudo apt-get install php-mongodb
52
ответ дан 21 March 2019 в 01:29
  • 1
    Замена source с . так команда была бы: . ~/.bashrc и видят то, что происходит, и сделайте не , определяют sudo – marko 3 October 2017 в 22:23

или для php 7

sudo apt-get install php7.0-mongodb
1
ответ дан 21 March 2019 в 01:29

Я уверен, что Вы нашли решение к настоящему времени. Однако я хочу совместно использовать, как я сделал это:

8
ответ дан 21 March 2019 в 01:29
  • 1
    Я сделал это, и также та же ошибка появилась.: ( – Rabab Zein 2 October 2017 в 20:28

Я использую это на своем Dockerfile:

echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
curl -OL https://www.dotdeb.org/dotdeb.gpg \
    && apt-key add dotdeb.gpg \
    && rm dotdeb.gpg
apt-get update -y \
    && apt-get install -y \
        php7.0 \
        php7.0-mongodb \
0
ответ дан 21 March 2019 в 01:29
  • 1
    Это дает мне xrandr: cannot find mode 1920x1080 (хотя тот режим перечислен для обоих дисплеев...), – Richard Law 25 February 2019 в 20:36

Я использую php версию 7.0 на человечности 16.04. Я даю подробную информацию для установки драйвера/клиента монго. Сначала я вручную установил mongodb и затем mongodb-php драйвер для него.

1) Устанавливающий дб монго. Введите следующие команды:

$ 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 в/etc/systemd/system/путем ввода команды:

$ 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 является командой, которая используется для создания среды сборки. Эта ошибка могла появиться во время установки любого pecl расширения. Для решения этой проблемы команды phpize, не найденной, пользователь должен установить php5-dev пакет. Для установки его вводят команду:

 $ sudo apt-get install php7.0-dev

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

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

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

расширение = mongo.so;

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

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

3) Теперь имеют в виду, что классы монго-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";
    }
6
ответ дан 21 March 2019 в 01:29

Другие вопросы по тегам:

Похожие вопросы: