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

27

Я использую 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.

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

Викаш Кумар
источник
Я тоже пробовал это, sudo apt-get install php7-mongoно не получил никакого положительного результата
Викаш Кумар
если вы хотите с php5-mongo, попробуйте этоsudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur
@bhordupur, похоже, этот репозиторий недействителен. Кроме того, вы решили сделать это вместо ответа? W: The repository 'http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
Вивек Кодира
1
@VivekKodira Нет, я не назвал это ответом, потому что Vicky R использовал Ubuntu 16.04 LTS, где по умолчанию установлен php7.x при выполнении этого php-mongodb. Я прокомментировал, что из-за того, что он шел с 14 до 16, но он все еще мог использовать то, что я прокомментировал выше. Вот почему я не поставил свой комментарий в качестве ответа.
bhordupur

Ответы:

52

Чтобы установить расширение mongodb, выполните:

sudo apt-get install php-mongodb
Videonauth
источник
2
Как это принятый ответ для php7? Эта команда на Ubuntu 16.04 установит php5.6 mongo no?
Ligemer
2
@Ligemer 16.04 имеет php7.0 в качестве PHP по умолчанию, поэтому все метапакеты устанавливают версию 7.0 упомянутых.
Видеонавт
ах да, спасибо за напоминание, у меня также установлен php5.6 с другого ppa и не те пакеты, которые привели меня к ошибке. В какой-то документации от mongo говорится, что нужно использовать расширение pecl, которое я и использовал.
Ligemer
1
Не забудьте перезапустить сервер Apache после установки пакета.
TheKarateKid
Могу ли я использовать ту же команду для AWS Linux Ec2?
151291,
6

Я использую PHP версии 7.0 на Ubuntu 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) Установка драйвера mongo-php:

$ sudo pecl install mongodb

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

 $ sudo apt-get install php7.0-dev

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

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

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

extension = mongo.so;

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

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

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";
    }
Пранш Тивари
источник
1

или для php 7

sudo apt-get install php7.0-mongodb
Альберт с
источник
мы установили mongodb, но ошибка при загрузке jumpset в браузере выглядит так: Ошибка: Расширение MongoDB PECL не было установлено или включено
shivashankar m
0

Я использую это в моем 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 \
MauricioOtta
источник