with usr failed extension ext error descargar php mongodb php-7 php-mongodb

usr - mongodb php linux



¿Instalar el cliente/controlador PHP 7 MongoDB? (13)

¿Cómo conectar php 7.0 con MongoDB en ubuntu 16.04 lts?

1) Instale LAMP usando el siguiente enlace. Instala Apache2, mysql y php 7.0. https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

2) Instale la edición de comunidad MongoDB en Ubuntu siguiendo los pasos en el siguiente enlace. http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

3) Escriba el siguiente comando para obtener la extensión mongoDB de pecl

sudo apt install php-pear

4) Agregue lo siguiente al archivo php.ini en /etc/php/apache2/7.0

extension=mongodb.so

Importante: las clases también han cambiado:

new MongoClient(); //Old Class new MongoDB/Driver/Manager(); // New Class

Consulte: http://php.net/manual/en/set.mongodb.php

Estoy muy ansioso por comenzar a trabajar con PHP 7, sin embargo, un problema se interpone en el camino ... Principalmente uso MongoDB para la base de datos, y el problema es que no sé cómo instalar el controlador / cliente MongoDB para PHP 7 .

Mi instalación actual es PHP 5.6 y en mi Mac y brew install php56-mongo hace el truco.

¿Alguien puede recomendar cómo puedo hacer que esto funcione en mi Mac o en una instalación de Ubuntu?

Gracias de antemano y muy apreciado!


Antigua pregunta, pero nueva excelente solución. Simplemente use el script automatizado Mongostead7 para instalar todo lo necesario. A mí me funcionó bien. No se necesita trabajo adicional.

Úselo de la siguiente manera:

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


Casi me rendí también. Para el controlador MongoDB para PHP 7x, Ubuntu 18.04 Pecl no funcionará . En cambio, intente:

sudo apt-get install php-mongodb

Luego, en la base de la carpeta de su proyecto, instale la biblioteca mongodb https://docs.mongodb.com/php-library/current/tutorial/install-php-library/

composer require mongodb/mongodb composer install

Que accede a las funciones de nivel inferior proporcionadas por el conductor.

Por último, vaya a php.ini y agregue

extension = mongo.so

y reiniciar apache

Para probar, intente agregar esto a un archivo php:

<?php require_once __DIR__ . "/vendor/autoload.php"; $collection = (new MongoDB/Client)->test->users; print_r($collection); ?>


Complementando respuestas y publicando lo que funcionó para mí:

1 seguí esta guía para instalar la lámpara https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 (The el tercer paso es necesario solo para instalar el cliente mongo)

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

3 $ sudo pecl install mongodb

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

Agregue la siguiente línea en el archivo:

extensión = mongo.so;

(Es posible que deba especificar la ubicación exacta del archivo. En mi caso, el archivo estaba en /usr/lib/php/20151012/mongodb.so).

Y eso es todo por instalar solo el cliente mongo para php 7.0

Estoy complementando la respuesta de Pransh Tiwari


El controlador MongoDB que admite PHP 7 solo se lanzó el 22 de diciembre ; es probable que sus repositorios posteriores como brew no se hayan actualizado.

La actualización confirmó que actualmente no hay una php70-mongo comandos php70-mongo brew, aunque hay una solicitud de extracción activa para agregar una.

Mientras tanto, puede automatically :

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


Esto funcionó para mí en Ubuntu para PHP7:

sudo apt-get install php7.0-mongodb


Estoy usando php versión 7.0 en ubuntu 16.04. Estoy dando una información detallada para instalar el controlador / cliente mongo. Primero instalé manualmente mongodb y luego el controlador mongodb-php para ello.

1) Instalación de mongo db. Ingrese los siguientes comandos:

$ 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

Para iniciar correctamente Mongdb como servicio, es decir, iniciar automáticamente Mongodb cuando se inicia el sistema, siga los siguientes pasos:

Cree el archivo mongodb.service en / etc / systemd / system / ingresando el comando:

$ sudo nano /etc/systemd/system/mongodb.service

Pegue los siguientes contenidos en él:

[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

Luego ingrese los siguientes comandos:

$ sudo systemctl start mongodb $ sudo systemctl enable mongodb

2) Instalación del controlador mongo-php:

$ sudo pecl install mongodb

También puede recibir un error: phpize no encontrado. Phpize es un comando que se utiliza para crear un entorno de compilación. Este error podría aparecer en el momento de la instalación de cualquier extensión pecl. Para resolver este problema del comando phpize no encontrado, el usuario debe instalar el paquete php5-dev. Para instalarlo ingrese el comando:

$ sudo apt-get install php7.0-dev

Luego, en el archivo php.ini que está en el directorio /etc/php/7.0/apache2, agregue la extensión mongo db:

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

Agregue la siguiente línea en el archivo:

extensión = mongo.so;

(Es posible que deba especificar la ubicación exacta del archivo. En mi caso, el archivo estaba en /usr/lib/php/20151012/mongodb.so).

Entonces, el mongo db se instala junto con su controlador.

3) Ahora tenga en cuenta que las clases mongo-php han cambiado. La mayoría de los recursos disponibles en la red dan soluciones utilizando clases antiguas que se reemplazan. A continuación se encuentran los enlaces a los que puede referirse:

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

http://zetcode.com/db/mongodbphp/

Aquí hay algunos comandos para las operaciones básicas de la base de datos:

$mng = new MongoDB/Driver/Manager(); // Driver Object created

Para insertar datos en la base de datos:

$bulk = new MongoDB/Driver/BulkWrite; $doc = ["_id" => new MongoDB/BSON/ObjectID, "data" => $someData, "info" => $someInfo]; $bulk->insert($doc); $mng->executeBulkWrite(''dbName.collectionName'', $bulk);

Para buscar datos:

$query = new MongoDB/Driver/Query([]); $rows = $mng->executeQuery("dbName.collectionName", $query); foreach ($rows as $row) { echo "$row->data - $row->info/n"; }


La extensión Mongo para PHP Versión 5.99.99 o anterior ha sido reemplazada:

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

Utilice el más nuevo para PHP Versión 7.99.99 o anterior en su lugar:

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

Puede instalar una extensión PECL / PEAR automatically :

pecl install mongodb

o manually

Las clases también han cambiado:

new /MongoClient(); // legacy class!

ver http://php.net/manual/en/book.mongo.php

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

ver http://php.net/manual/en/set.mongodb.php

Puede encontrar información adicional sobre compatibilidad aquí:

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


No, desafortunadamente, el controlador heredado no es compatible con PHP7. Aquí está el commit y el JIRA Ticket donde se finalizó oficialmente.

El nuevo controlador PHP MongoDB se puede encontrar https://pecl.php.net/package/mongodb (o GitHub ).

Para instalar, solo:

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

La documentación para el nuevo controlador se puede encontrar here . Me gustaría incluir una nota de la documentación:

En última instancia, esta extensión no está destinada a usarse sola. Los usuarios deberían considerar el uso de este controlador junto con una o más bibliotecas PHP de usuario y de usuario, como https://github.com/mongodb/mongo-php-library .

La nueva mongodb controlador mongodb / PHP es mucho más de bajo nivel que el controlador mongo heredado, y se le recomienda usar una biblioteca de nivel superior en la parte superior del controlador en lugar de usarla directamente en su código.

Mongo PHP Library ( releases ) es la biblioteca oficial de alto nivel para PHP, y es lo que se recomienda usar en sus proyectos. Todavía está en Beta, pero parece ser el camino más seguro y a prueba de futuro con PHP7.

Es posible que alguien pueda portar el controlador heredado a PHP7, pero probablemente no sea necesario, ya que hay muchos otros problemas con el controlador heredado.


Puede intentar instalar el controlador mongodb con:

sudo apt-get install php-mongodb


Si tiene problemas para que su antiguo código PHP5 funcione con PHP7, una solución que puede considerar es https://github.com/alcaeus/mongo-php-adapter

Me di cuenta de que, en la mayoría de los casos, incluir la biblioteca del adaptador es todo lo que necesita hacer para que su antiguo código PHP5 funcione correctamente bajo PHP7 con el nuevo enfoque de controlador / biblioteca.

Luego, le sugiero que migre su código a la nueva Biblioteca MongoDB PHP ( https://github.com/mongodb/mongo-php-library ) o que use el controlador nativo para beneficiarse de las ganancias de velocidad.


UBUNTU 16.0.4 (07.12.2016)

instalar controladores PHP-MONGODB: Comandos:
- sudo pecl install mongodb -> résultat: el proceso de compilación se completó con éxito Instalando ''/usr/lib/php/20151012/mongodb.so'' install ok: channel: //pecl.php.net/mongodb-1.2.0 opción de configuración "php_ini "no está configurado en la ubicación php.ini Debe agregar" extension = mongodb.so "a 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

instale 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

Para dar la solución, necesito al menos 10 reputación para publicar ...