For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Run the following commands to clone and build the project:
$ 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
If your system has multiple version of PHP installed (e.g. macOS default and » XAMPP), note that each version of PHP has its own phpize command and php.ini file.
By default, the driver will use bundled versions of » libbson and » libmongoc and attempt to configure them on its own. If libbson and libmongoc are already installed as system libraries, you can instruct the driver to utilize them by specifying --with-libbson=yes --with--libmongoc=yes as arguments to configure.
For a complete list of configure options, run configure --help.
When using bundled versions of libbson and libmongoc, the driver will also attempt to select an SSL library according to the --with-mongodb-ssl option for configure. The default value is --with-mongodb-ssl=auto, which will search for Secure Transport (macOS only), OpenSSL, and LibreSSL, in that order. Additionally, you may specify openssl, libressl, or darwin to force selection of a particular library, respectively.
Note:
If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed.
When using Homebrew on macOS, it is common for a system to have multiple versions of OpenSSL installed. To ensure that the desired version of OpenSSL is selected, the PKG_CONFIG_PATH environment variable may be used to control the search path for pkg-config. If pkg-config is not used, configure also supports a --with-openssl-dir=DIR argument, which can be used to specify a manual search path (for OpenSSL only).
The final build step, make install, will report where mongodb.so has been installed, similar to:
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20151012/
Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. You can query for the option by running:
$ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 => /usr/lib/php/extensions/debug-non-zts-20151012
If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.
Finally, add the following line to your php.ini file:
extension=mongodb.so