Як встановити розширення PHP Mongodb в 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 Ні. Я не ставив це як відповідь, тому що Вікі R використовував Ubuntu 16.04 LTS, де за замовчуванням php7.x встановлений під час виконання цього php-mongodb. Я прокоментував, що через те, що він прийшов від 14 до 16, але все ж він все ще міг використовувати те, що я коментував вище. Ось чому я не став свій коментар як відповідь.
Бордупур

Відповіді:


52

Щоб встановити розширення mongodb, виконайте:

sudo apt-get install php-mongodb

2
Як це прийнята відповідь для php7? Ця команда на ubuntu 16.04 встановить php5.6 mongo ні?
Лігемер

2
@Ligemer 16.04 має PHP7.0 за замовчуванням PHP, тому всі метапакети встановлюють 7.0 версію згаданих.
Videonauth

ага так, дякую за нагадування, у мене встановлено php5.6 також з іншого ppa, і це не ті самі пакети, які призвели до помилки. Деяка документація від mongo говорить про використання розширення pecl, яке я і в кінцевому підсумку використав.
Ligemer

1
Не забудьте перезапустити сервер Apache після встановлення пакета.
TheKarateKid

Чи можна використовувати ту саму команду для AWS Linux Ec2?
151291,


6

Я використовую php версії 7.0 на ubuntu 16.04. Я надаю детальну інформацію про встановлення драйвера / клієнта mongo. Спочатку я вручну встановив 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 в / 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 не знайдено. Phpize - це команда, яка використовується для створення середовища побудови. Ця помилка може з’явитися під час встановлення будь-якого розширення pecl. Щоб вирішити цю проблему команди phpize не знайдено, користувачеві необхідно встановити пакунок php5-dev. Щоб встановити його, введіть команду:

 $ sudo apt-get install php7.0-dev

Потім у файл php.ini, який знаходиться в каталозі /etc/php/7.0/apache2, додайте розширення mongo db:

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

Додайте у файл наступний рядок:

розширення = mongo.so;

(Можливо, вам потрібно буде вказати точне розташування файлу. У моєму випадку файл був у /usr/lib/php/20151012/mongodb.so.)

Тож mongo db встановлюється разом із його драйвером.

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";
    }

1

або для php 7

sudo apt-get install php7.0-mongodb

ми встановили mongodb, але помилка під час завантаження перемикача на браузер на зразок: Помилка: Розширення 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 \
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.