It is not very often but I do try out PHP and static html sites on my mac. But every time I try running apache server with applications under Sites folder, one or more issues pop up. So I thought I would write down the steps to get it working as it might help me or someone else next time.
To start apache, issue the following command in the Terminal
sudo apachectl start #restart if it is already running
Once done, visit http://localhost. You should see ‘It works’ message.
Next to serve projects, applications under ~/Sites folder, add/update the configuration file at /etc/apache2/users/username.conf with the following content
<Directory "/Users/username/Sites/"> Options FollowSymLinks Indexes MultiViews AllowOverride All Order allow,deny Allow from all Require all granted </Directory>
Replace username with your user name.
Change the permission if you need to
sudo chmod 644 username.conf
Make a backup of the original httpd.conf file
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.orig
Edit the main httpd.conf file to enable some modules
sudo vi /etc/apache2/httpd.conf
LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule include_module libexec/apache2/mod_include.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so #Enable PHP module if not enabled LoadModule php5_module libexec/apache2/libphp5.so
Now edit the following file to enable user configuration
sudo vi /private/etc/apache2/extra/httpd-userdir.conf
Uncomment this line
sudo apachectl restart
The applications/ static html sites under ~/Sites should now be available at
http://localhost/~username (replace username with your user name)
Try this out and let me know if it works (or doesn’t)
(I found https://coolestguidesontheplanet.com/ had some useful information on the modules that were needed to be enabled to get apache working as expected.)