Each Mac has a built-in Apache server that runs a built-in PHP.
To upgrade it you need less than 10 minutes once you have understood all the steps needed.
The same applies also to install the last PHP 7.1 version: you only need to change the required version of PHP (see below).
Exploring the LAMP server of a Mac
To understand the built-in PHP of your Mac the first thing you should do is open your terminal and type in:
$ php -v
PHP 5.5.24 (cli) (built: May 19 2015 10:10:05)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
This is the PHP version installed in your Mac.
But, from where is it executed?
$ which php
/usr/bin/php
And the php.ini?
$ php -i | grep "php.ini"
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
So, by default Mac OsX has PHP 5.5.24
with xDebug 2.2.3
and our php.ini
is located at /usr/bin/php
.
How to update PHP on Mac OsX
As we want to update the built-in version of PHP of our Mac OsX, at this point maybe its better to think at a more valuable solution.
Update PHP… go to php.net/downloads.php, download the latest version of PHP, unzip, compile, configure… Mmm, there is a better solution for sure!
And in fact, those good boys at Liip have thought that there should be a better solution… And they built it!
So, in your Terminal, type (use 7.1 if you want to install the last PHP 7.1 version!):
$ curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
You have just downloaded the best PHP latest version you can find ever.
Now, let’s configure it: it needs less then 5 minutes!
WARNING: If you receive an error like, then you need to stop the built-in Apache instance and reinstall it from Homebrew: it seems the Apache version shipped with MacOS causes some troubles that prevent the server to starting.
Here all the information you need to disable the built-in version of Apache in MacOS and install a fresh new one with Homebrew.
How to configure your updated version of Mac OsX built-in PHP
The package you have just downloaded is a custom version of PHP built by Liip and it provides a lot more functionalities and useful PHP extension than the original Mac OsX built-in PHP, so you will save a lot of time when you’ll install and update them (think at Intl extension or xDebug, for example).
Once downloaded, the Liip’s PHP moves all the files into /usr/local/php5-5.6.11-20150710-223902/bin
and makes a symlink of this folder called php5. In this way, when you’ll update PHP, Apache will automatically load the new PHP version (see more about this in a moment). Really smart!
If you type in Terminal again which php
you’ll get the same result as before. This is because we have to tell our Mac OsX to load PHP from the new location.
To do this we will create a .bash_profile
in our user directory:
$ sudo vi ~/.bash_profile
This will open VIM that will create the new file (if it is already present, type the letter a
to enter the edit mode).
Into the .bash_file
write the line export PATH=/usr/local/php5/bin:$PATH
, then press Esc
and type SHIFT + Z
for two times (a shortcut to save and close the file).
Then load again the .bash_profile
file and restart Apache:
$ source ~/.bash_profile
$ sudo apachectl restart
$ which php
/usr/local/php5/bin/php
You have updated your Mac OsX built-in PHP.
On the Liip’s PHP Mac OsX home page you will find a lot of useful information about your new PHP.
The next step you should do is open the php.ini
located at /usr/local/php5/lib/
and set it the right way.
And, once you have configure your php.ini
, maybe you want to configure your Mac Osx built-in Apache or want to install MySQL in your Mac (as it is not shipped by default).
Remember to “Make. Ideas. Happen.”.
I wish you flocking users, see you soon!
Luke says
Thanks Adam. Great tutorial.
Pea says
Thanks! This was super helpful. I can now run phpUnit.
ANDRES O. says
Gracias me sirvio mucho!
pamela says
awesome!! works !!
Bystander says
Question. I upgrade my php, and my MAMP stop working. Now, i have to reinstall MAMP but have to backup my database first. it’s a hassle because i couldn’t find where it stores the database.
Can you show me how to downgrade to old default php?
Gab says
Great tutorial! Thank you!