JSON (JavaScript Object Notation) LogoI recently started messing around with building my own Facebook application. I figured the best way to start learning was to download the demo application and get it working on the Slaptijack web server. I quickly ran into a problem:

PHP Fatal error:  Call to undefined function json_encode()

The problem is that PHP 5.2 includes the json_encode() and json_decode() functions built right in. Unfortunately, I'm running on PHP 5.0 which doesn't include native JSON support. Here's how I resolved that.

  1. Install json - This was actually trickier than expected. I assumed I would be able to install this via pear. Apparently, a PEAR Services_JSON package was developed, but it has never been accepted into the official repository. The trick instead is to use the PECL json package. This was as easy as running pecl install json and watching the compiler do its thing. When it's done you should have a json.so file in your PHP modules directory. (Mine is /usr/lib/php/modules/.)
  2. Add json.ini file to /etc/php.d/ - This file is pretty simple. Simply add extension=json.so to this file and that will enable the extension.
  3. Restart Apache - Not much more to add here. Without the restart, the extension won't be loaded.
  4. Profit!

That's all it took. Now my PHP 5 installation is kicking along happily with the required JSON functions.