Устанавливаете клиент / драйвер PHP 7 MongoDB?

Я очень хочу начать работать с PHP 7, однако одна проблема мешает … Я в основном использую MongoDB для базы данных, и проблема в том, что я не знаю, как установить драйвер / клиент MongoDB для PHP 7 ,

Моя текущая установка PHP 5.6 и на моем Mac и brew install php56-mongo делает трюк.

Кто-нибудь может порекомендовать, как я могу заставить это работать на моем Mac или Ubuntu установить?

Заранее спасибо и высоко ценится!

30

Решение

Расширение Mongo для версии PHP 5.99.99 или старше был заменен:

https://pecl.php.net/package/mongo

Используйте более новую версию для PHP 7.99.99 или старше вместо:

https://pecl.php.net/package/mongodb

Вы можете установить расширение PECL / PEAR автоматически:

pecl install mongodb

или же вручную.

классы тоже были изменены:

new \MongoClient(); // legacy class!

увидеть http://php.net/manual/en/book.mongo.php

new \MongoDB\Driver\Manager(); // new classes!

увидеть http://php.net/manual/en/set.mongodb.php

Дополнительную информацию о совместимости можно найти здесь:

https://docs.mongodb.org/ecosystem/drivers/php/#compatibility

37

Другие решения

Драйвер MongoDB, который поддерживает PHP 7 был только выпущен 22 декабря — его вероятные нижестоящие репозитории, такие как brew, не обновлялись.

Обновление подтверждено в настоящее время нет php70-mongo скрипт brew, хотя есть активный тянуть запрос добавить один.

Вы можете быть в состоянии установить его вручную через pecl в это время:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
11

Как связать php 7.0 с MongoDB в Ubuntu 16.04 lts?

1) Установите LAMP, используя следующую ссылку. Он устанавливает Apache2, MySQL и PHP 7.0.
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

2) Установите MongoDB Community Edition в Ubuntu, выполнив действия, указанные в следующей ссылке.
http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

3) Введите следующую команду, чтобы получить расширение mongoDB из pecl

sudo apt install php-pear

4) Добавьте следующее в файл php.ini по адресу /etc/php/apache2/7.0

extension=mongodb.so

Важно — классы тоже были изменены:

new MongoClient();  //Old Class

new MongoDB\Driver\Manager(); // New Class

Обратитесь — http://php.net/manual/en/set.mongodb.php

7

Вы можете попробовать установить драйвер mongodb с помощью:

sudo apt-get install php-mongodb
5
  • Сначала нам нужно установить MongoDB на машине, выполнив шаги, упомянутые здесь:
    https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
  • Следующим шагом является установка драйвера MongoDB для использования с PHP.
  • Драйвер MongoDB для PHP версии 5.99.99 или более ранней версии:
    https://pecl.php.net/package/mongo
    чтобы установить это нам нужно использовать:

    sudo apt-get установить php-pear php5-dev

    sudo pecl установить монго

  • Начиная с PHP 7, это новый драйвер
    https://pecl.php.net/package/mongodb Чтобы установить это использовать: sudo pecl install mongodb

  • Если вы используете каркас Laravel или проекты с composer, то эта библиотека является наиболее подходящей:
    https://github.com/jenssegers/Laravel-MongoDB
    Используйте версию 3.0.0, чтобы получить PHP 7 & Поддержка Laravel 5 и использование старой версии 2.2.2.
    Команда композитора:

    композитор требует jenssegers / mongodb

  • Если вы используете другие PHP-фреймворки без composer, используйте эту библиотеку: https://github.com/mongodb/mongo-php-library который также используется в вышеупомянутой библиотеке

3

Нет, устаревший драйвер, к сожалению, не поддерживает PHP7. Вот совершить и JIRA Ticket где это было официально завершено.

Новый драйвер PHP MongoDB можно найти в PECL здесь (или же GitHub).

Для установки достаточно:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

Документацию для нового драйвера можно найти Вот. Я хотел бы добавить примечание из документации:

В конечном счете, это расширение не предназначено для использования в одиночку. Пользователям следует рассмотреть возможность использования этого драйвера вместе с одной или несколькими пользовательскими библиотеками PHP, такими как Монго-PHP-библиотека.

Новый mongodb расширение драйвера / PHP намного более низкого уровня, чем унаследованное mongo драйвер, и вам рекомендуется использовать библиотеку более высокого уровня поверх драйвера, а не использовать ее непосредственно в своем коде.

Mongo PHP Library (релизы) является официальной высокоуровневой библиотекой для PHP, и это то, что рекомендуется использовать в ваших проектах. Он все еще находится в бета-версии, но, похоже, это самый безопасный и перспективный путь вперед с PHP7.

Для кого-то может быть возможно портировать устаревший драйвер на PHP7, но, вероятно, в этом нет особой необходимости, поскольку существует много других проблем с устаревшим драйвером.

2

Старый вопрос, но новое отличное решение. Просто используйте Mongostead7 автоматизированный скрипт для установки всего необходимого. У меня сработало просто отлично. Никакой дополнительной работы не требуется.

Используйте это следующим образом:

sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh
2

Дополняю ответы и публикую то, что у меня работает:

1 следовал этому руководству, чтобы установить лампу https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 (Третий шаг необходим только для установки клиента Монго)

2 $ sudo apt-get install php7.0-dev

3 $ sudo pecl install mongodb

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

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

extension = mongo.so;

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

И это все, что нужно для установки только клиента mongo для php 7.0

Я дополняю ответ Пранша Тивари

2
По вопросам рекламы [email protected]