So here at work, we’re in the process of developing a new web site for our subscribers. We’ve decided to implement the site atop the SilverStripe Content Management System, as we’ve found it to be incredibly flexible and easy to use. It’s based on a powerful MVC framework that’s written in PHP. We develop mostly on Mac OS X, which includes PHP5 pre-installed, so therefore it should be easy to install, right? Wrong!

Want to install SilverStripe? Sure, drop it in place, it’s just a directory structure, but when you try to access the main page, which generally results in SilverStripe attempting to perform its initial setup, you’re Denied!

Why? Well, first of all, SilverStripe requires MySQL… Not included by default on Mac OS X. So I had to install that. I also had to install the MySQL Admin and MySQL Query tools so that I could create the default SilverStripe database and properly set up its permissions.

Next, SilverStripe requires the GD2 PHP extension. Unfortunately, Mac OS X’s PHP installation includes absolutely none of the common PHP extensions. Have one of the thousands of PHP apps that want to use the PHP SOAP extension out of the box? Can’t! Yep, I found that one out while I was trying to do PHP development using the EC2 SOAP APIs.

Should be easy enough to compile the GD2 extension and install it, right? No Way! Building GD2 from a standard PHP download requires a bunch of dependencies that aren’t installed by default on Mac OS X, and then when you finally do get it built and add it to your PHP.ini, it still doesn’t work. So how about MacPorts? Why should I have to install PHP from MacPorts if PHP is already installed?! Even worse, I’d have to reconfigure Apache to use the MacPorts PHP5 install instead of the default. Bleck!

Long story short, I wasted over an hour of my time trying to get the Mac OS X PHP install to bend to my will with absolutely no luck. Then I realized something. I work for JumpBox… We actually have a JumpBox for SilverStripe. It took me about ten seconds to download the JumpBox, another ten to uncompress the Zip file, and yet another ten seconds to start up the SilverStripe VM. After that, I had to fill out a couple of fields for the initial setup, and was good to go. Yes, people, it took under a minute to get a working SilverStripe system up and running.

Even better, instead of having to go through the headache of installing SilverStripe, MySQL, and the missing Mac OS X PHP extensions all over again on my MacBook (so that I can work at home, of course), all I had to do was suspend the VM, copy the JumpBox for SilverStripe folder onto my 5gb thumb drive and throw it in my pocket. Try doing that with your average everyday install.