Error Tracking

O banco de dados NoSql MongoDB a partir da versão 3.2 sofreu mudanças na distribuição e desenvolvimento de seus drivers. Neste artigo estão descritos passos e dicas para a instalação do driver PHP para MongoDB em Linux variantes de Debian, como Ubuntu e Mint.

Instalando o MongoDB 3.2

Primeiramente vamos executar os passos para a instalação do servidor MongoDB em seu sistema operacional.

É necessário adicionar o repositório oficial do banco de dados, pois as versões nos repositórios Debian, Ubuntu costumam não estarem atualizadas, ou demoram muito para apresentar as versões estáveis mais recentes.

No terminal:

sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/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 mongodb-org

Note que utilizar a opção -E no sudo é opcional, utilizo ela com frequência quando tenho problemas de acesso ao proxy.

Esta opção é descrita no manual a ser utilizada para indicar às políticas de segurança que as variáveis ambiente devem ser preservadas:

-E | –preserve-env Indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the user does not have permission to preserve the environment.



Instalando o driver PHP MongoDB

As versões atualizadas do driver PHP MongoDB são distribuídas via PECL, portanto vamos iniciar instalando PEAR, PECL e bibliotecas necessárias para possíveis compilações realizadas pelo instalador.

Execute os comandos a seguir no terminal:

sudo apt-get install php-pear
sudo apt-get install php5-dev
sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev pkg-config libsslcommon2-dev autoconf g++ make openssl libcurl4-openssl-dev libcurl4-openssl-dev libsasl2-dev libpcre3-dev

Após instalar as bibliotecas necessárias, baixe a última versão distribuída no repositório PECL, pelo endereço https://pecl.php.net/package/mongodb. Cuidado para não baixar do repositório obsoleto, a versão mantida oficialmente chama-se mongodb (com db no final), a versão antiga chamada mongo é distribuída e possui atualizações por motivo de compatibilidade para os softwares que a utilizaram no passado.

Tendo feito o download da versão desejada, ao escrever este artigo 1.1.5, navegue pelo terminal até a pasta onde o arquivo foi gravado e execute o comando abaixo (de acordo com o nome correto da versão que você baixou):

sudo pecl install mongodb-1.1.5.tgz

Durante a compilação pelo processo de instalação do PECL, e também as configurações necessárias, você deve ver uma lista grande de saídas de depuração no console, se tudo ocorrer bem, as últimas linhas apresentadas serão similares às frases a seguir:

Build process completed successfully
Installing ‘/usr/lib/php5/20131226/mongodb.so’
install ok: channel://pecl.php.net/mongodb-1.1.5
configuration option “php_ini” is not set to php.ini location
You should add “extension=mongodb.so” to php.ini

A última linha solicita que seja habilitada a extensão mongodb.so no arquivo php.ini. Execute os comandos a seguir no terminal para que um arquivo de configuração para o driver seja criado no diretório mods-avaiable do PHP e na sequência este arquivo seja habilitado utilizando php5enmod.

sudo sh -c "echo 'extension=mongodb.so' >> /etc/php5/mods-available/mongodb.ini"
sudo php5enmod mongodb
sudo service apache2 restart

Por fim, após a reinicialização do Apache, o driver PHP MongoDB estará instalado e configurado para uso em sua versão mais recente.


Referências

Para chegar a esta solução de configuração e instalação do driver PHP MongoDB, foram consultadas as seguintes fontes de informação, blogs e fóruns listados a seguir:

https://github.com/mongodb/mongo-php-library
https://pecl.php.net/package/mongodb
http://mongodb.github.io/mongo-php-driver/
http://stackoverflow.com/questions/35110083/how-to-get-older-versions-of-mongodb
http://superuser.com/questions/1025450/unable-to-install-php-mongodb-driver-on-ubuntu-14-04-lts
http://askubuntu.com/questions/403327/install-pecl-packages-on-ubuntu/403348
http://php.net/manual/pt_BR/install.pecl.pear.php
http://stackoverflow.com/questions/6099439/pecl-install-failed
https://github.com/mongodb/mongo-php-driver/issues/138
http://stackoverflow.com/questions/22555561/error-building-fatal-error-pcre-h-no-such-file-or-directory
http://stackoverflow.com/questions/23563488/no-releases-available-for-package
http://serverfault.com/questions/415458/php-error-cannot-find-openssls-evp-h

Pin It on Pinterest

Share This

Share This

Share this post with your friends!