Install PHP on Mac

Using a Mac for the first time, I faced a problem installing PHP. I would install it over and over, and every time the terminal would tell me that I don’t have PHP on my laptop. Here are the steps I had to follow to be able to install multiple versions of PHP.

Uninstall PHP

The first step is to update brew before using it to install PHP

brew update
brew upgrade
brew cleanup

Then you need to check the current PHP installed

brew list | grep php

Then uninstall all the PHP that the grep return, here is an example :

brew uninstall --force php71 php71-apcu php71-opcache php71-xdebug php71-yaml
brew uninstall --force php72 php72-apcu php72-opcache php72-xdebug php72-yaml
brew cleanup

Check again with a grep if you have anything related to PHP left :

brew list | grep php

If it returns nothing, then you are all good. Otherwise, try to uninstall what is left.

Then we want to remove the old PHP configuration :

rm -Rf /usr/local/etc/php/*

Once everything is clean, you can jump into the PHP installation.

Install PHP

We start by installing the tap that will

brew tap shivammathur/php

Then you can install the different versions of PHP you want. I need versions 7.1, 7.2 and 7.3:

brew install shivammathur/php/[email protected]
brew install shivammathur/php/[email protected]
brew install shivammathur/php/[email protected]

Now you can go in the php.ini of every version and change the options you need like the memory settings, the date.timezone etc… You can find the files of each version here:

/usr/local/etc/php/7.1/php.ini
/usr/local/etc/php/7.2/php.ini
/usr/local/etc/php/7.3/php.ini

We have installed but not linked these PHP versions. To switch to PHP 5.6 for example, we can type:

brew unlink php && brew link --overwrite --force [email protected]

Now you can test if you are in the correct version using :

php -v

If you want to switch versions, use this command :

brew unlink php && brew link --overwrite --force [email protected]

Don’t forget to check if the version correctly changed:

php -v

Sources :

25