The PHP that ships with Mac is getting rusty. Time to get PHP 5.4!
I tried several methods, and several fail failed. This one (https://gist.github.com/2721719) didn’t.
sudo port selfupdate
sudo port -u upgrade outdated
sudo port install php54 php54-apache2handler
cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so
sudo port install php54-curl php54-ftp php54-iconv php54-mbstring php54-mcrypt php54-mysql php54-openssl php54-soap php54-sqlite php54-xsl php54-zip php54-xdebug php54-mongo
sudo port install php53 php53-apache2handler
sudo port install php53-curl php53-ftp php53-iconv php53-mbstring php53-mcrypt php53-mysql php53-openssl php53-soap php53-sqlite php53-xsl php53-zip php53-xdebug php53-mongo
cd #
curl http://pear.php.net/go-pear.phar -o go-pear.phar
sudo php go-pear.phar
And then we can select which php the system uses by saying either of these:
sudo port select php php54
sudo port select php php53
When installing Pear:
Option 1. Installation base ($prefix) : /opt/local/lib/php54
4. Binaries directory : /opt/local/bin
Then get PHPUnit
pear info pear && rm go-pear.phar
sudo pear config-set auto_discover 1; sudo pear install pear.phpunit.de/PHPUnit
Lastly we nano /etc/apache2/httpd.conf and ctrl-w to look where php is. Comment the 5.3 one, and add the line:
#LoadModule php5_module libexec/apache2/lib_php5.so
LoadModule php5_module /opt/local/apache2/modules/mod_php54.so
So we can switch between the two by moving the comment. Finally restart apache!
sudo apachectl restart
phpinfo() and php -v both showing 5.4! Fantastico! Remember to set your default timezone now!