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 ...
- Primero necesitamos instalar MongoDB en la máquina a través de los pasos mencionados aquí: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
- El siguiente paso es instalar un controlador MongoDB para usar con PHP.
-
El controlador MongoDB para PHP Versión 5.99.99 o anterior era: https://pecl.php.net/package/mongo para instalar esto, necesitamos usar:
sudo apt-get install php-pear php5-dev
sudo pecl instalar mongo
-
Desde PHP 7 en adelante, este es el nuevo controlador https://pecl.php.net/package/mongodb Para instalar ese uso:
sudo pecl install mongodb
-
Si está utilizando el marco o proyectos de Laravel con Composer, esta biblioteca es la más adecuada: https://github.com/jenssegers/Laravel-MongoDB Use la versión 3.0.0 para obtener soporte para PHP 7 y Laravel 5 y de lo contrario use Comando Composer versión anterior 2.2.2:
compositor requiere jenssegers / mongodb
-
Si está utilizando otros marcos PHP sin compositor, use esta biblioteca: https://github.com/mongodb/mongo-php-library que también se usa en la biblioteca mencionada anteriormente