Every single time we need to install MongoDB for PHP on our local systems, we end up having to rediscover the steps involved. This inevitably leads to finding various hints across a dozen websites that all combine to a solution in which we can continue developing. Throughout the process, we usually fail to bookmark links, which inevitably we need to look up again.

This time we’re writing it all down in one place.

How to Install MongoDB on PHP for OSX MAMP

1. Requirements

In case you’re looking to install MongoDB on OSX with MAMP, this is the guide for you! For our purposes, this is our local system set up:

  •  OSX (10.11 El Capitan at the time of this writing)
  • MAMP
  • XCode (Apple’s developer application, available in the App Store)
  • Homebrew
  • Pecl/Pear for your version of PHP (typically included with MAMP php installs)

We are also assuming:

  • You have a basic understanding of command line (Terminal.app or other bash-like shell)

2. Installing the Basics

In your Terminal, we’ll run three commands to make sure some necessary scripts are installed. They will warn you if they have already been installed. You may have to run sudo as needed.

XCode has some Developer Tools that make it easier for command-line development of Ruby, PHP, and a few others. You can install it by running the following:

xcode-select --install

autoconf and openssl are Homebrew formulas that help composer’s make function run properly for installing the rest of the PHP package. Sure, there are other ways to install these formulas, but I find this method easiest:

brew install autoconf openssl

OpenSSL can have another issue, and it’s due to OSX including it’s own version of openssl, which is outdated for the purposes of PHP’s compiling. After installing openssl, also run the following command, to make sure Brew’s version of OpenSSL has priority:

brew link openssl --force

3. Download PHP source for compiling

MAMP’s version of PHP are not complete versions. As such, we’re going to download the full PHP source so we can compile extensions and other functionality.

Decide which version of PHP you want to install MongoDB for. For the sake of this demo, we are updating 5.6.10.

Go to PHP Releases and download a full copy of PHP 5.6.10. Unzip it, and move the files to /Applications/MAMP/bin/php/php5.6.10/include/php

Go to that location in Terminal, and run:

./configure

This will install the full version of this version for your MAMP copy of php.

4. Install MongoDB Extension for PHP 5.6.10

After PHP successfully installed, we’re ready to install the MongoDB extension. Since you may have multiple different versions of PHP running on your system, and the version that you might be installing PHP for might not be the one in use by your system, you should go to to the bin for this version of PHP

cd /Applications/MAMP/bin/php/php5.6.10/bin

and run that version of pecl to install the mongodb extension:

./pecl install mongodb

5. Let PHP know about the MongoDB Extension

After this successfully ran, you now have MongoDB installed! But… you’re not quite there yet! Now, you need to tell PHP to use the mongodb extension. Load up your version of MAMP, and go edit the php.ini file

Screen Shot 2016-08-08 at 2.04.29 PM

Search for extension=, and add extension=mongodb.so … save and exit.

Screen Shot 2016-08-08 at 2.59.46 PM

6. Restart Apache

Pretty straightforward, but restart your MAMP Apache Server. This lets PHP load up the updated php.ini file.

7. Repeat (optional)

Repeat steps 3-6 as necessary for each version of PHP that you wish to have the mongodb extension available on.

8. Celebrate!

Cheers!

Caveats: Updating MAMP to the latest versions seems to cause the /include/ folder to disappear for each of the respective PHP installs… so you’d have to rebuild your php, by repeating steps 3 to 6

Digital Marketing Tasks You Can't Afford to Skip