PHP 5.4.7 is the latest stable release of PHP. WordPress has a minimum required version of 5.2.6. Most developers aren’t using the PHP 5.4 branch. Actually, most aren’t even rocking PHP 5.3. This disgusts me.
$this in closures in class methods.
If you haven’t messed around with PHP 5.3, you can install these MacPorts to get started:
php5 +apache2+fastcgi+pear php5-apc php5-curl php5-gd php5-http php5-iconv php5-imagick php5-mbstring php5-mcrypt php5-memcached php5-mysql +mysqlnd php5-openssl php5-tidy
If you already have PHP 5.3 and want to upgrade to PHP 5.4, these are some tricks to get you on the right path:
sudo -s // use sudo mode throughout port uninstall php5 // won't work if you have extensions installed, // so uninstall everything that has PHP5 as a dependency first port install php54 cd /opt/local/etc/php54 && sudo cp php.ini-development php.ini
Install a bunch of PHP extensions:
port install php54-apc php54-curl php54-gd php54-http php54-iconv php54-imagick php54-mbstring php54-mcrypt php54-memcached php54-mysql php54-openssl php54-tidy
To use mysqlnd with a local MySQL server, edit
/opt/local/etc/php54/php.ini and set
Make sure PHP 5.4.6 is the default PHP binary:
If it’s something like
cd /usr/bin && sudo rm -rf php sudo ln -s /opt/local/bin/php54 php
You now have PHP 5.4.6 and your extensions, but you no longer have the apache variant.
port install php54-apache2handler cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so vi /opt/local/apache2/conf/httpd.conf (remove the old php5.so)
You now have PHP 5.4 and the apache handler, but you no longer have the PEAR variant. You can try to make this work:
port install pear-PEAR
Or you can do the following:
cd # curl http://pear.php.net/go-pear.phar -o go-pear.phar sudo php go-pear.phar
You will prompted to specify config vars, we want to change #1 and #4.
Press 1 – Installation base ($prefix) – and enter:
Press 4 – Binaries directory – and enter:
More checks for PEAR:
pear info pear && rm go-pear.phar pear config-set auto_discover 1 // make sure PEAR is in the PHP include path pear config-get php_dir // if you don't see "/opt/local/lib/php54/share/pear" in there php54 -i|grep 'php.ini' // you should see "/opt/local/etc/php54" - if you don't: sudo vi php.ini // change include_path to: include_path = ".:/opt/local/lib/php54/share/pear"
PEAR is installed, let’s install some PEAR stuffs:
// Unit tests pear install pear.phpunit.de/PHPUnit // Documentation generator pear install pear.apigen.org/apigen
sudo /opt/local/apache2/bin/apachectl restart
You can start Apache and Memcached, et al by using commands like:
sudo port load apache2 sudo port unload apache2 sudo port load memcached sudo port unload memcached // memcached debugging, start with: memcached -vv