I am trying to upgrade my PHP version from 7.1 to 7.2 on macOS and with Homebrew.
I did the following steps:
brew install php72
brew services stop php71
brew unlink php71
brew link php72
brew services start php72
Everything seemed to work fine. When I do php --version
I get:
PHP 7.2.9 (cli) (built: Aug 16 2018 21:40:59) ( NTS ) Copyright (c)
1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018
Zend Technologies
with Zend OPcache v7.2.9, Copyright (c) 1999-2018, by Zend Technologies
But if I try to run a PHP script with phpinfo()
the information still says PHP Version 7.1.20.
If I run brew services list
I have the following services running:
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
mariadb started xy /Users/xy/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
nginx started root /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
php started root /Library/LaunchDaemons/homebrew.mxcl.php.plist
php@7.1 stopped
What could be the reason?
Best Answer
brew unlink php71
andbrew link php72
will tweak your php command line to the right path and version, but Apache will not be affected until you change its config file.First, locate your
httpd.conf
file path:You may also check:
Then:
httpd.conf
file and locate the line starting withLoadModule php
#
, and add your 7.2 line instead. You can get your line from querying the following command in the Terminal:brew info php@7.2 | grep LoadModule
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
sudo apachectl restart
There's also detailed instructions about using a php switcher here. Once installed, you can switch from one version to another like this (it will link both Apache and the command line automatically):