Instalar y configurar MongoDB y el driver PHP con MacPorts

mongodb-logo

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

Crea estos alias para tener unos comandos más cortos de arranque y para de mongodb:

alias mongodbstart='sudo mongod -f /opt/local/etc/mongodb/mongodb.conf'
alias mongodbstop="mongo --eval \"db.getSiblingDB('admin').shutdownServer()\""

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

Si usas php54 hay que instalarlos así:

$ sudo port install pear-PEAR

Y luego añadir la siguiente ruta a la variable de entorno PATH:

/opt/local/lib/php/pear/bin

Así que añadimos lo siguiente a ~/.bash_profile:

export PATH=/opt/local/bin:/opt/local/lib/php/pear/bin:${PATH}

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

You might also like

Solucionar “mongodb cannot be built while v8 is active” en MacPorts
Mientras actualizaba los ports en macports me salió este error:---> Configuring mongodb Error:...

Instalar MongoDB en Ubuntu 12.04 con driver PHP
Instalar MongoDB:sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo...

Install and configure MongoDB and PHP driver with MacPorts
Installing and configuring MongoDB with MacPortsInstalling MongoDB with MacPorts is as easy as...

Install MongoDB in Ubuntu 12.04 with PHP driver
Install MongoDB:sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.