[2] Apache <=> PHP switching version
You have successfully installed your PHP versions, but we need to tell Apache to use them.
You will again need to edit the /usr/local/etc/apache2/2.4/httpd.conf
file and search for
#LoadModule php5_module
.
You will notice that each PHP version added a LoadModule
entry, however these are all
pointing to very specific versions. We can replace these with some more generic paths
(exact versions may differ):
LoadModule php5_module /usr/local/Cellar/php55/5.5.38_11/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/Cellar/php56/5.6.26_3/libexec/apache2/libphp5.so
LoadModule php7_module /usr/local/Cellar/php70/7.0.11_5/libexec/apache2/libphp7.so
LoadModule php7_module /usr/local/Cellar/php71/7.1.0-rc.3_8/libexec/apache2/libphp7.so
Modify the paths as follows:
#LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
#LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
#LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
This will tell Apache to use PHP 5.6 to handle PHP requests. (We will add the ability to switch PHP versions later).
Also you must set the Directory Indexes for PHP explicitly, so search for this block:
and replace it with this:
Save the file and restart Apache again, now that we have installed PHP:
sudo apachectl -k restart
Checking PHP version use of phpinfo()
.
This is not something you want to leave on a production machine, but it's invaluable in a
development environment.
Simply create a file called info.php
in your Sites/
folder you created earlier.
In that file, just enter the line:
phpinfo();
PHP Switcher Script
We hard-coded Apache to use PHP 5.6, but we really want to be able to switch between versions. Luckily, some industrious individuals have already done the hard work for us and written a very handy little PHP switcher script.
We will install the sphp
script into brew's standard /usr/local/bin
:
$ curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp
$ chmod +x /usr/local/bin/sphp
Check Your Path
Homebrew should have added its preferred /usr/local/bin
and /usr/local/sbin
to your path as part of
its installation process. Quickly test this by typing:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
If you don't see this, you might need to add these manually to your path. Depending on your shell your using,
you may need to add this line to ~/.profile
, ~/.bash_profile
, or ~/.zshrc
. We will assume you are using the
default bash shell, so add this line to a your .profile
(create it if it doesn't exist) file at the
root of your user directory:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
At this point, I strongly recommend closing ALL your terminal tabs and windows. This will mean opening a new terminal to continue with the next step. This is strongly recommended because some really strange path issues can arise with existing terminals.