Building a PHP Test Environment on Mac OS X
The following instructions were written for and tested on Mac OS X 10.6 Snow Leopard. Please install all OS software updates before starting to build your test environment.
Building a PHP test environment on Mac OS X is a three step process:
- Install Xcode
- Download the Automated Build Scripts
- Run the Build Script
We recommend you run tests you've written against the three main branches of PHP: 5.2, 5.3 and Trunk.
The rest of the instructions assume you will be building your test environment on your ~/Desktop. If you choose to build in another location, please change the corresponding paths in all commands found throughout the rest of the instructions.
Install Xcode
The build tools that Mac OS X needs to configure compile and build PHP are all included in Xcode. Xcode can be installed from the Mac OS X Installation DVD or downloaded here. Please install Xcode now.
Download the Automated Build Scripts
Open up a Terminal window and run the following commands in order:
cd ~/Desktop
curl -O http://www.ericstewart.org/public/phpt/PHP-Test-Build-Scripts.tgz
tar -xzf PHP-Test-Build-Scripts.tgz
You've now downloaded and uncompressed the build scripts onto your desktop.
Run the Build Script
Copy the build script to your Desktop using this command:
cp PHP-Test-Build-Scripts/MacOSX-10.6.sh ./
Make the build script executable with this command:
chmod +x ./MacOSX-10.6.sh
Now, you simply run the shell script using this command:
./MacOSX-10.6.sh
You have now built a test environment for PHP on your desktop. The build environment will include a folder for each of the main PHP branches: “php52”, “php53”, and “php-trunk”.
Screencast
Watch a Screencast demonstration of this entire process. Screencast demonstration.
Other Tips
Spotlight will index all of these PHP source files (including tests) and you might not want to do that. If not, consider doing the following:
- Open: System Preferences
- Select: Spotlight
- Select: Privacy
- Select: +
- Then, choose the root folder(s) you'd like to hide, like php52, php53, and php-trunk used in the demo.