Dutch PHP Conference 2025 - Call For Papers

Installation manuelle de l'extension de MongoDB PHP

Pour les développeurs et les utilisateurs intéressés par les dernières corrections de bogues, l'extension peut être compilée à partir du dernier code source sur » Github. Exécutez les commandes suivantes pour cloner et construire le projet :

$ 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

Sur les systèmes avec plusieurs versions de PHP installées (par exemple, macOS par défaut, Homebrew, » XAMPP), chaque version de PHP aura sa propre commande phpize et fichier php.ini. De plus, chaque environnement PHP (par exemple CLI, web) peut utiliser des fichiers php.ini séparés.

Par défaut, l'extension utilisera les versions incluses de » libbson, » libmongoc, et » libmongocrypt et essayera de les configurer automatiquement. Si ces bibliothèques sont déjà installées en tant que bibliothèques système, l'extension peut les utiliser en spécifiant --with-mongodb-system-libs=yes comme option à configure.

Pour une liste complète des options configure, exécutez configure --help.

Lorsque vous utilisez les versions groupées de libmongoc et libmongocrypt, l'extension tentera également de sélectionner une bibliothèque SSL selon l'option de configuration --with-mongodb-ssl. À partir de la version 1.17.0 de l'extension, OpenSSL est toujours préféré par défaut. Auparavant, Secure Transport était le défaut sur macOS et OpenSSL était le défaut sur toutes les autres plates-formes.

Note:

Si le processus de construction échoue à trouver une bibliothèque SSL, vérifiez que les paquets de développement (par exemple libssl-dev) et » pkg-config sont tous deux installés.

Lorsque vous utilisez Homebrew sur macOS, il est courant qu'un système ait plusieurs versions d'OpenSSL installées. Pour garantir que la version d'OpenSSL souhaitée est sélectionnée, la variable d'environnement PKG_CONFIG_PATH peut être utilisée pour contrôler le chemin de recherche de pkg-config. Si pkg-config n'est pas utilisé, configure prend également en charge un argument --with-openssl-dir=DIR, qui peut être utilisé pour spécifier un chemin de recherche manuel (pour OpenSSL uniquement).

La dernière étape de construction, make install, indiquera où mongodb.so a été installé, similaire à :

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20220829/

Assurez-vous que l'option extension_dir dans php.ini pointe vers le répertoire où mongodb.so a été installé. L'option peut être interrogée en exécutant :

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 =>
                   /usr/lib/php/extensions/debug-non-zts-20220829

Si les répertoires diffèrent, modifiez extension_dir dans php.ini ou déplacez manuellement mongodb.so dans le répertoire correct.

Pour finir, ajoutez la ligne suivante au fichier php.ini pour chaque environnement qui aura besoin d'utiliser l'extension :

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
8 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)
4 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