Hello, I’m a web craftsman with a passion for the modern web. I build web applications and play with social services and communities.

November 6, 2011 at 4:29 pm

There is still plenty of interest in my old article “Develop memcached web apps with XAMPP under Mac OS X” so I decided to write a little follow up.

XAMPP for OS X hasn’t seen any updates in quite a while so I decided to go with MAMP after upgrading to Mac OS X Lion (10.7.2 as of now). Quite ironic since I originally changed from MAMP to XAMPP because of the lack of updates from MAMP. However, both are quite similar when it comes to installing extensions from pecl or pear so you may have some luck applying the following steps to either dev environment.

Also while I am installing the mongo driver for php here, the very same steps should work for other pecl packages such as memcache, uploadprogress or xdebug. So let’s get started!

Prerequisites:

  • Install XCode (I’m on 4.2 at the moment)
  • Install MAMP (2.0.5)
Install MongoDB if you haven’t done so yet: (I’m using homebrew for that, it’s the fastest way to get MongoDB running)
  1. $ brew install mongodb
  2. Start the MongoDB server
    $ mongod

Now it’s time to install the mongo php extension:

  1. Download the matching version of the php source code from php.net (MAMP 2.0.5 comes with PHP 5.3.6)
  2. Create an include-folder in your MAMP php installation
    $ mkdir /Applications/MAMP/bin/php/php5.3.6/include
  3. Extract the php source code into that new folder. The extracted folder is called php-5.3.6.
  4. Rename that folder to just php, then the php source code should be located here:
    /Applications/MAMP/bin/php/php5.3.6/include/php
  5. Change into that directory and configure php:
    $ cd /Applications/MAMP/bin/php/php5.3.6/include/php
    $ ./configure
  6. MAMP comes with a weird pear config file that causes issues, let’s remove it:
    $ rm /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf
  7. Now install the mongo driver with pecl:
    $ cd /Applications/MAMP/bin/php/php5.3.6/bin
    $ ./pecl install mongo
  8. Activate the extension in your php.ini:
    extension=mongo.so

And that’s all. From now on you only need the last two steps to install other extensions.