SunshinePHP Developer Conference 2015

Instalación

El controlador de MongoDB para PHP debería funcionar en cualquier sistema: Windows, Mac OS X, Unix, y Linux; pequeñas y grandes máquinas; y plataformas de 32 y 64 bits; PHP 5.1, 5.2, 5.3 y 5.4.

Esta extensión » PECL no se distribuye con PHP.

Instalación manual

Para los desarrolladores de controladores y gente interesada en las últimas correcciones, puede compilar el controlador desde las últimas versiones en » Github. Ir a Github y presione en el botón "download". Ejecute:

$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Realice los siguientes cambios en php.ini:

  • Asegúrese de que la variable extension_dir este apuntando al directrio que contiene mongo.so. El build se mostrará dónde se encuetre instalado el controlador de PHP, la salida será algo similar a esto:

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Asegúrese de que este en el mismo directorio en donde PHP se encuentre, ejecute:
    $ php -i | grep extension_dir
      extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                       /usr/lib/php/extensions/no-debug-non-zts-20060613
    Si no es así, cambia extension_dir en php.ini o mueva mongo.so

  • Para cargar la extensión en el arranque de PHP, agregar una línea:

    extension=mongo.so

Instalación en *NIX

Ejecute:

$ sudo pecl install mongo

Si se está usando CentOS o Redhat, se puede isntalar desde un » RPM.

Agregar la siguiente línea en el fichero php.ini:

extension=mongo.so

Si pecl se quedará sin memoria al instalar, asegúrese de que memory_limit en php.ini sea de al menos de 32MB.

Instalación en Windows

Los binarios precompilados para cada versión están disponibles en » S3 para una gran variedad de combinaciones de versiones, seguridad en hilos, y bibliotecas VC. Descomprima el fichero y copie php_mongo.dll en el directorio de extensiones de PHP ("ext" por omisión).

Agregar la siguiente línea al fichero php.ini:

extension=php_mongo.dll

Nota: Dependencias de DLL adicionales para usuarios de Windows

Para que esta extensión funcione, hay unos ficheros DLL que deben estar disponibles en el PATH del sistema de Windows. Para obtener más información sobre esto, vea la FAQ titulada "Como añadir mi directorio de PHP al PATH de Windows". Aunque copiar los ficheros DLL desde el directorio PHP al directorio del sistema de Windows también funciona (porque el directorio del sistema está de manera predeterminada en el PATH del sistema), no se recomienda. Esta extensión requiere que los siguientes ficheros esten en el PATH: libsasl.dll

OS X

Si su sistema no puede encontrar autoconf, necesita instalar Xcode (disponible en el DVD de instalación o como descarga gratuita desde el sitio web de Apple).

En la mayoría de los casos es más sencilla la instalación desde pecl:

$ sudo pecl install mongo

Si usa XAMPP, podría ser capaz de compilar el controlador con con el siguiente comando:

sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo

Gentoo

Gentoo tiene un paquete para el controlador de PECL de PHP llamado dev-php5/mongo que puede ser instalado con:

$ sudo emerge -va dev-php/pecl-mongo

Si se utiliza PECL, quizá obtiene un error de versión incorrecta en libtool. Compile desde las fuentes que necesite y ejecute aclocal y autoconf.

$ phpize
$ aclocal 
$ autoconf 
$ ./configure
$ make
$ sudo make install

Red Hat

Incluye Fedora y CentOS

En estos sistemas, la configuración por omisión de Apache no permite a las peticiones establecer conexiones de red, haciendo que el driver genere errores de "Permiso denegado" cuando se intenta conectar a la base de datos. Si este fuera el caso, pruebe a ejecutar:

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Y finalmente reinicie Apache. (Este comportamiento también se da con SELinux.)

Instrucciones de instalación de terceros

Un gran número de personas han creado excelentes tutoriales de instalación de controlador de PHP.

add a note add a note

User Contributed Notes 8 notes

up
4
Andrey
3 years ago
On windows installation check for VC compilator version inside phpinfo(), if you install incorrect one it wouldn't work.
I tried to run on Apache2 with VC6, and always get folowing error:

Fatal error: Class 'Mongo' not found

Until I look into phpinfo and found MSVC9, after that
I install VC9 dll files and it solve the problem.
up
2
cap at unagon dot com
4 years ago
For Debian users: apt-get install php5-dev will install phpize for you.
up
2
Hanakaze
1 year ago
To install the Mongo driver on Windows 7 x64 with EasyPHP, you have to use the x86 driver (instead of x64) and non nts :
php_mongo-1.3.2RC1-5.4-vc9.dll actually
up
1
poorpuer at gmail dot com
3 years ago
If you're running IIS under Windows 7 and have PHP manager installed you'll also need to manually enable the extension. Start IIS Manager, select PHP Manager, under the section labeled PHP Extensions click on Enable or disable an extension, then enable the php_mongo.dll extension, and restart IIS.
up
0
Daniel
11 months ago
This may help also:

http://blog.salientdigital.com/2012/05/16/how-to-fix-no-acceptable-c-compiler-found-in-path-on-mac-os-x-lion/

Xcode doesn't ship with "Command Line Tools", you need to install then after installing Xcode.

You need Command Line Tools to get the program `m4` that you need to install mongo driver using: sudo pecl install mongo.

HTH
up
-1
bradley dot henke at colorado dot edu
1 year ago
Instructions for Manually Installing MongoDB for PHP for use with "XAMPP for Linux":

There were two gotchas that I ran into. "XAMPP for Linux" needs 32 bit libraries, and the php API version must match the php API version of "XAMPP for Linux".
Hopefully this will save someone else time figuring this all out!

1) Install "XAMPP for Linux" AND the "XAMPP for Linux Development Files".

2) Grab the source code from github (in the manual instructions above)
$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>

There are now some smalls deviation from the manual instructions...
3) PHPize
$ sudo /opt/lampp/bin/phpize

4) Configure
$ ./configure

5) Make changes to the Makefile (XAMPP requires a 32-bit compilation)
- Choose your favorite text editor and open "Makefile"
- Make the following changes:
Line 20: prefix = /opt/lampp
Line 23: prefix = /opt/lampp
Line 25: phpincludedir = /opt/lampp/include/php
Line 27: CFLAGS = -g -O2 -m32
Line 34: EXTENSION_DIR = /opt/lampp/lib/php/extensions/no-debug-non-zts-20100525/
Line 35: PHP_EXECUTABLE = /opt/lampp/bin/php

Make sure you replace </path/to/mongo-php-driver-master>
Line 38: INCLUDES = -I/opt/lampp/include/php -I/opt/lampp/include/php/main -I/opt/lampp/include/php/TSRM -I/opt/lampp/include/php/Zend -I/opt/lampp/include/php/ext -I/opt/lampp/include/php/ext/date/lib -I</path/to/mongo-php-driver-master>/util -I</path/to/mongo-php-driver-master>/exceptions -I</path/to/mongo-php-driver-master>/gridfs -I</path/to/mongo-php-driver-master>/types -I</path/to/mongo-php-driver-master>/mcon

6) Compile
$ sudo make all

7) Copy the static object into the extension directory
$ sudo cp modules/mongo.so /opt/lampp/lib/php/extensions/no-debug-non-zts-20100525/

9) Update your php.ini file
- Grab you favorite text editor and open /opt/lampp/etc/php.ini (you'll probably need to use sudo).
- Add the line: extension=mongo.so

10) Restart "XAMPP for Linux". You should now be able to see Mongo listed in your phpinfo() page! Installation Complete!!!

Good Luck!
up
-6
rishi at plavaga dot in
3 years ago
I am using XAMPP 1.7.4 (32 bit) on Windows 7. Though it was mentioned that Apache uses a non-threadsafe version of DLL, when used, it was giving me the below error:

PHP Warning:  PHP Startup: Unable to load dynamic library
Warning:  PHP Startup: Unable to load dynamic library 'D:\xampp\php\ext\php_mongo.dll' - The specified module could not be found.

I had to use the thread-safe version (mongo-1.1.4.zip\mongo-1.1.4-php5.3vc6ts\php_mongo.dll) to get it working.
up
-6
tiago dot braga at gmail dot com
3 years ago
In Windows running IIS the directory to instal is "C:\Program Files\PHP\ext". Than you have to install the apropriate MongoDriver version (in my case was mongo-1.1.4-php5.3vc9) and than Restart IIS.

The MongoDB Driver will be available.
To Top