# 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