Para desenvolvedores e usuários interessados nas correções de bugs mais recentes, a extensão pode ser compilada a partir do código-fonte mais recente no » Github. Execute os seguintes comandos para clonar e construir o projeto:
$ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule update --init $ phpize $ ./configure $ make all $ sudo make install
Em sistemas com múltiplas versões de PHP instaladas (por exemplo, macOS padrão, Homebrew, » XAMPP), cada versão do PHP terá seu próprio comando phpize e arquivo php.ini. Além disso, cada ambiente PHP (por exemplo, CLI, web) pode usar um arquivo php.ini separado.
Por padrão, a extensão usará versões agrupadas de
» libbson,
» libmongoc e
» libmongocrypt e
tentar configurá-los automaticamente. Se essas bibliotecas já estiverem
instaladas como bibliotecas de sistema, a extensão poderá utilizá-las
especificando --with-mongodb-system-libs=yes
como uma opção para
configure
.
Para obter uma lista completa de opções de configure
, execute
configure --help.
Ao usar versões empacotadas de libmongoc e libmongocrypt, a extensão
também tentará selecionar uma biblioteca SSL de acordo com a
opção --with-mongodb-ssl
configure
.
A partir da versão de extensão 1.17.0, o OpenSSL é sempre preferido por padrão.
Anteriormente, o Secure Transport era o padrão no macOS e o OpenSSL era o
padrão em todas as outras plataformas.
Nota:
Se o processo de construção não conseguir encontrar uma biblioteca SSL, verifique se os pacotes de desenvolvimento (por exemplo,
libssl-dev
) e » pkg-config estão ambos instalados.Ao usar o Homebrew no macOS, é comum que um sistema tenha várias versões do OpenSSL instaladas. Para garantir que a versão desejada do OpenSSL seja selecionada, a variável de ambiente
PKG_CONFIG_PATH
pode ser usada para controlar o caminho de pesquisa parapkg-config
. Sepkg-config
não for usado,configure
também suporta um argumento--with-openssl-dir=DIR
, que pode ser usado para especificar um caminho de pesquisa manual (somente para OpenSSL).
A etapa final de compilação, make install, reportará onde mongodb.so foi instalado, semelhante a:
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20220829/
Certifique-se de que a opção extension_dir no php.ini aponta para o diretório onde mongodb.so foi instalado. A opção pode ser consultada executando:
$ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 => /usr/lib/php/extensions/debug-non-zts-20220829
Se os diretórios forem diferentes, altere extension_dir no php.ini ou mova manualmente mongodb.so para o diretório correto.
Finalmente, adicione a seguinte linha ao arquivo php.ini para cada ambiente que precisará usar a extensão:
extension=mongodb.so