Construindo o driver MongoDB PHP a partir do código-fonte

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 para pkg-config. Se pkg-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

add a note

User Contributed Notes 3 notes

up
26
chatocoral at gmail dot com
6 years ago
You think this is to complicated? You use Ubuntu 14 or 16? use this:

sudo apt-get install php-mongodb

This installs everything you need to use MongoDB inside PHP.

Don't stop using MongoDB, is the best that will happen to you.

You're Welcome.
up
0
fgm at osinet dot fr
7 years ago
a) If your git version is not recent enough, as can happen e.g. on Ubuntu 12.04 LTS, git submodule --init won't exist
In that case use:

git submodule init
git submodule update

b) make install does not create a mongodb.conf configuration file to support the debian/ubuntu PHP versions phpenmod/phpdismod commands. To have them work:

- do not add the extension=mongodb.so line to php.ini
- add it to a mongodb.ini file in the PHP mods-available directory
- the commands will then work for this extension

c) if you have multiple versions of PHP on a system such as b), the phpenmod/phpdismod commands may fail if the extension is not built for the default PHP CLI version. To have it be enabled for a specific version, use the -v argument, like

phpenmod -v php7.1 mongodb
up
-2
Anisur Rahman (anisur2805 at gmail dot com)
3 years ago
After installing mongodb, in terminal there are couple of error ex.

PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: C:\xampp\php\ext\mongodb.so (The specified module could not be found.), C:\xampp\php\ext\php_mongodb.so.dll (The specified module could not be found.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: C:\xampp\php\ext\mongodb.so (The specified module could not be found.), C:\xampp\php\ext\php_mongodb.so.dll (The specified module could not be found.)) in Unknown on line 0

https://prnt.sc/ubr5mq

Solution:
1. If you include mongodb extension in php.ini file first remove that
2. Goto your php path inside Xampp and create an file called mongodb.ini and pest this below line, see ss - https://prnt.sc/ubr7ii
code extension=mongodb.so

This solution works in windows 10, php 7.4 version
To Top