Instalar y configurar MongoDB con MacPorts
Installar MongoDB con MacPorts es tan fácil como ejecutar el siguiente comando:
$ sudo port install mongodb
MongoDB usa por defecto la ruta /data/db
para almacenar los ficheros de datos, y es muy probable que no tengas esa ruta por lo que al ejecutar el servidor de MongoDB (mongod
) acabarás teniendo este error:
*********************************************************************
ERROR: dbpath (/data/db/) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
Hay varias opciones:
Crear esa carpeta y darle los permisos adecuados:
$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
Proporcionar otra ruta como la carpeta de datos usando la opción --dbpath
:
$ mongodb --dbpath /var/lib/mongo
Y la mejor de todas, crear las carpetas necesarias para los datos y los logs y crear el fichero de configuración que indica dónde están dichas rutas:
$ sudo mkdir /opt/local/var/db/mongodb
$ sudo mkdir /opt/local/var/log/mongodb
$ sudo touch /opt/local/var/log/mongodb/mongodb.log
$ sudo mkdir /opt/local/etc/mongodb/
Añade lo siguiente al fichero /opt/local/etc/mongodb/mongodb.conf
:
# Store data alongside MongoDB instead of the default, /data/db/
dbpath = /opt/local/var/db/mongodb
# Only accept local connections
bind_ip = 127.0.0.1
# Running as daemon
fork = true
# Take log
logpath = /opt/local/var/log/mongodb/mongodb.log
logappend = true
Puedes entonces ejecutar mongod
especificando el fichero de configuración que acabas de crear:
$ sudo mongod -f /opt/local/etc/mongodb/mongodb.conf
Una forma aún más fácil es usar el comando load/unload que viene con MacPorts que crea y define todas esas opciones en el fichero /opt/local/etc/LaunchDaemons/org.macports.mongodb/org.macports.mongodb.plist
. Puedes arrancar y parar MongoDB con estos comandos (usarlos hará que MongoDB se autoarranque al inicio del sistema!):
$ sudo port load mongodb
$ sudo port unload mongodb
Más opciones de configuración: http://docs.mongodb.org/manual/reference/configuration-options/
Instalar el driver PHP de MongoDB
Antes de instalar el driver tenemos que estar seguros de que tenemos instalado pear
y pecl
. Ejecutar los siguientes comandos a ver si muestran algún resultado:
$ pear version
$ pecl version
Ahora instalamos el driver PHP con el comando pecl
:
$ sudo pecl install mongo
Cuando acabe la instalación verás algo como esto:
Build process completed successfully
Installing '/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mongo.so'
install ok: channel://pecl.php.net/mongo-1.3.4
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongo.so" to php.ini
La última línea indica que tienes que editar a mano el fichero php.ini
, que en mi caso está en /opt/local/etc/php5/php.ini
, y añadir la extensión para mongo. Puedes añadir esa línea al final del fichero pero se supone que su sitio es en la sección “Dynamic Extensions”.
Ahora reinicia el servidor Apache y ya estarás preparado para usar MongoDB desde PHP.
$ sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start
Fuentes: http://api.mongodb.org/wiki/current/PHP%20Language%20Center.html
http://noteit.jiaeil.com/install-mongodb-via-macports-on-mac
http://stackoverflow.com/questions/8029064/new-to-mongodb-can-not-run-command-mongo