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

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

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

  • Передача данных MySQL в Modal Form через PHP
  • Вычисление ранга в PHP / MySQL
  • Проблемы с MongoDB PHP UTF-8
  • Как распределить значения массива в трех столбцах?
  • Что является причиной размещения логического или нулевого значения перед оператором сравнения?
  • Вставка текста из textarea в базу данных MySQL без потери форматирования
  • Может ли кто-нибудь порекомендовать, как я могу заставить это работать на моем Mac или установке Ubuntu?

    Спасибо заранее и высоко оценили!

  • Поля обновления MongoDB во вложенном массиве
  • Принимая сумму «столбца» в MongoDB
  • Класс «MongoClient» не найден
  • Запуск PHP Не удается загрузить динамическую библиотеку php_mongo.dll
  • Внедрение оценки объектов выражения типа goMongoDB
  • Как сортировка работает в новом расширении PECL mongodb?
  • 11 Solutions collect form web for “Установка клиента / драйвера PHP 7 MongoDB?”

    Расширение 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

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

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

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

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

    Как подключить 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 на 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 

    Refer – http://php.net/manual/en/set.mongodb.php

    • Сначала нам нужно установить 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 install php-pear php5-dev

      sudo pecl install mongo

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

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

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

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

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

    Новый драйвер 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 в пользовательской среде , такими как mongo-php-library .

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

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

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

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

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

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

    Это работало для меня на Ubuntu для PHP7:

    sudo apt-get install php7.0-mongodb

    UBUNTU 16.0.4 (07.12.2016)

    установите драйверы PHP-MONGODB: Commandes:
    – sudo pecl install mongodb -> résultat: Процесс сборки успешно завершен Установка «/usr/lib/php/20151012/mongodb.so» install ok: channel: //pecl.php.net/mongodb-1.2.0 параметр конфигурации «php_ini "не установлено в расположение php.ini. Вы должны добавить" extension = mongodb.so "в php.ini

      -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so" - sudo systemctl restart apache2.service https://secure.php.net/manual/en/mongodb.installation.pecl.php - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server: -/etc/php/7.0/fpm/conf.d/30-mongodb.ini -/etc/php/7.0/cli/conf.d/30-mongodb.ini Commandes : sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini -> add "extension=mongodb.so" sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini -> add "extension=mongodb.so" - Test if the mongodb extension is running in your server : Commandes : php --ini и  -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so" - sudo systemctl restart apache2.service https://secure.php.net/manual/en/mongodb.installation.pecl.php - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server: -/etc/php/7.0/fpm/conf.d/30-mongodb.ini -/etc/php/7.0/cli/conf.d/30-mongodb.ini Commandes : sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini -> add "extension=mongodb.so" sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini -> add "extension=mongodb.so" - Test if the mongodb extension is running in your server : Commandes : php --ini и  -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so" - sudo systemctl restart apache2.service https://secure.php.net/manual/en/mongodb.installation.pecl.php - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server: -/etc/php/7.0/fpm/conf.d/30-mongodb.ini -/etc/php/7.0/cli/conf.d/30-mongodb.ini Commandes : sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini -> add "extension=mongodb.so" sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini -> add "extension=mongodb.so" - Test if the mongodb extension is running in your server : Commandes : php --ini 

    установить DoctrineMongoDBBundle: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html , http://www.doctrine-project.org/2016/06/09/odm-1-1-0-and -1-0-6.html ,

      Commandes : - cd - cd my_project_name - ls -a composer* -> résultat : composer.json composer.lock - sudo nano composer.json - Add to the composer.json in "require" array "doctrine/mongodb-odm": "^1.0", "doctrine/mongodb-odm-bundle": "^3.0" - Add to the composer.json in "require" array "alcaeus/mongo-php-adapter": "^1.0", "ext-mongo": "*" - Add a new array : "provide": { "ext-mongo": "1.6.12" } - Move sudo cp -i /usr/lib/php/20151012/mongodb.so /etc/php/7.0/cli 

    Чтобы дать решение, мне нужно как минимум 10 репутации, чтобы опубликовать …

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

     sudo apt-get install php-mongodb 

    Если вы боретесь с тем, что ваш старый код PHP5 работает с PHP7, одним из решений, которое вы, возможно, захотите изучить, является https://github.com/alcaeus/mongo-php-adapter

    Я заметил, что в большинстве случаев, включая библиотеку адаптеров, все, что вам нужно сделать, чтобы ваш старый код PHP5 работал правильно в PHP7 с новым подходом к драйверу / библиотеке.

    Затем я настоятельно рекомендую вам перенести свой код в новую библиотеку PHP MongoDB ( https://github.com/mongodb/mongo-php-library ) или использовать собственный драйвер для получения выгоды от повышения скорости.

    Я использую 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 $ sudo apt-get update $ 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 того, как [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 – это команда, которая используется для создания среды сборки. Эта ошибка может появиться во время установки любого расширения расширения. Для решения этой проблемы команда 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 

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

    extension = mongo.so;

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

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

    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"; } 
    PHP is the Best Programming Language in the world.