Configurando mongodb com php no Mac OS Maverick

03/12/2013

No post anterior, expliquei o processo de instalação do mongodb no mac. Caso ainda não tenha instalado, veja aqui.

Vou mostrar como instalar e configurar o drive do php para conectar ao mongo. O ambiente seguido nesse tutorial:

Mac OSX 10.9
Mac Port 2.2.1
Php 5.4.22

Utilizando o mac ports

Utilizar o mac ports tem sido prioridade nas configurações do meu ambiente, pois facilita muito o processo de instalação, além de ser semelhante ao apt-get do ubuntu.

Para instalar o módulo do mongo para o php, basta instalar o php-mongo (indicando a versão na nomenclatura do pacote):

1
$ sudo port install php54-mongo

Caso esteja executando outra versão do php, altere a versão do comando (ex: para Php v5.5, altere para php55-mongo). Reinicie o apache.

Utilizando o PEAR

Uma outra maneira é utilizando PEAR (repositório de componentes) e PECL (repositório de extensões do PHP). Neste tutorial, realizei a instalação do PEAR utilizando o mac ports. Mas você pode seguir também a documentação oficial aqui

1
$ sudo port install pear-install-phar pear-PEAR

Após instalado, abra seu editor preferido, adicione a seguinte linha no arquivo ~/.bash_profile e reinicie o terminal.

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

Confira a versão do PEAR instalado:

1
2
$ pear version
PEAR Version: 1.9.4

Instale a extensão PHP para mongo, utilizando o PECL

1
$ sudo pecl install mongo

Localize o php.ini e abra em seu editor favorito:

1
2
3
4
5
$ php --ini
Configuration File (php.ini) Path: /opt/local/etc/php54
Loaded Configuration File:         /opt/local/etc/php54/php.ini
 
$ sudo nano /opt/local/etc/php54/php.ini

Adicione a chamada para extensão do mongo:

1
extension=mongo.so

Agora reinicie o apache. Caso tenha instalado o apache utilizando também o mac ports, execute:

1
$ sudo /opt/local/apache2/bin/apachectl -k restart

Testes

Crie um arquivo com a função phpinfo. Nele, deve constar as informações do mongo (vide imagem abaixo)

Phpinfo - mongo

Agora crie um arquivo de teste, para testar a conexão do banco:

1
2
3
$db = new Mongo;
echo "<pre>";
var_dump($db);

A saida deve ser um objeto do Mongo.
Enjoy! 🙂

@vinaocruz