Recompiling PHP on OS X 10.9 Mavericks

Yesterday, I updated my computer to the new release of the amazing OS X operating system from Apple, code-named Mavericks. Everything went smooth, but then I realized it wiped my PHP installation away and gave me the default Mavericks installation, PHP 5.4.17. Being a web developer, I like to have the most recent version of PHP whenever I can. So naturally I decided to recompile it. I have done this many times before after upgrades, so this wasn’t anything new to me.

I use the well-written article Upgrading the Native PHP Installation on OS X Mountain Lion by Bruno Skvorc. This explains the whole compiling process.

However, I started to run into a ton of issues when configuring the binary from the PHP website . Can’t find zlib? Can’t find openssl? Where is all my stuff?!?!

It turns out that Mavericks moved the command line tools out of XCode into somewhere else. Therefore, I no longer had a /usr/include file which contains many of the headers I needed to include these things. However, this raises a new issue. How do I install the CLTs? I found an article titled <a href"http://www.computersnyou.com/2025/2013/06/install-command-line-tools-in-osx-10-9-mavericks-how-to/">Install Command Line Tools In OSX 10.9 Mavericks [ How – To ] that explains you must run a command in the terminal. So, open a terminal and run:

xcode-select --install

This will install the CLTs for you and create the /usr/include directory you need to compile correctly. NOTE: I had to run this twice to get it to work right. It didn’t create the directory the first time.

There was only one error left after I did this. It said I didn’t have PostgreSQL. I used Homebrew to install that for me:

brew install postgresql

I hope this saves you the hours I wasted on this.

Update

I also had issue when using make test. It couldn’t find my iodbcext.h file. I had to edit my configure statement to have --with-unixODBC=/usr/local and make sure I have unixODBC installed through Homebrew:

brew install unixodbc