As in my previous guides for enabling Apache and PHP on Sierra 10.12 and El Capitan 10.11 before that, this post will update the instructions for macOS Mojave 10.14.2 which comes with Apache 2.4.34 and PHP 7.1.19.
As usual, be extra careful - many changes here are done as root.
First, edit the httpd.conf
configuration file as root, i.e.
sudo vi /private/etc/apache2/httpd.conf
Enable at least these two modules by uncommenting them (i.e. remove the initial #
):
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module libexec/apache2/libphp7.so
To setup your user, find and edit:
<IfModule unixd_module>
User [mylogin]
Group staff
</IfModule>
Further on, edit the DocumentRoot
line and add a new Directory
element. Of course you need to replace [mylogin] and [www] appropriately:
AllowOverride All
- will allow a custom.htaccess
Require all granted
- will give access to the virtual folder (this is new)
DocumentRoot "/Users/[mylogin]/[www]"
<Directory "/Users/[mylogin]/[www]">
AllowOverride All
Require all granted
</Directory>
Save!
BTW, the default httpd.conf
reads an external file other/php7.conf
that sets up the appropriate mime types and extensions. Cool.
Next, create a default php.ini
file and edit as needed:
cd /private/etc/
sudo cp php.ini.default php.ini
Finally, re-start httpd with:
sudo apachectl -k restart
To test, I create a small php file:
cd /Users/[mylogin]/[www]
echo "<?php phpinfo();" > phpinfo.php
Then, in Safari, visit localhost/phpinfo.php
- you should see all sorts of PHP system info (and not an error).
Yes, PHP has been upgraded to php7
. From Terminal you can confirm this with php -v
:
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
And similarly for httpd, apachectl -version
returns:
Server version: Apache/2.4.34 (Unix)
Server built: Aug 17 2018 18:35:43