I don’t suppose there’s any way to prevent macOS updates stomping on my local website every time? After doing an OS update, I have to do some magical incantations in Terminal to get my localhost (dejal.local) site working again. I use this for local testing of website changes before pushing to my production server.

If interested, here is my spellbook to re-enable the local website and PHP, based on instructions I found on the web; presumably I could script this in some way, but I’m not confident enough with scripting or messing with these files to try that:

% sudo nano /etc/apache2/httpd.conf

Uncomment these:

LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module libexec/apache2/libphp7.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf

% sudo nano /etc/hosts

Make sure this is still there (typically fine after an OS update):

#Local sites
127.0.0.1 dejal.local

% sudo nano /etc/apache2/extra/httpd-userdir.conf

Uncomment to be like this:

Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>

% sudo nano /etc/apache2/users/dejal.conf

Should be like this (typically fine after an OS update):

<Directory "/Users/dejal/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

% sudo nano /etc/apache2/extra/httpd-vhosts.conf

Change to this:

#Virtual Host Entry for dejal.local
<VirtualHost *:80>
DocumentRoot "/Users/dejal/Sites/dejal"
ServerName dejal.local
ErrorLog "/private/var/log/apache2/dejal-error_log"
CustomLog "/private/var/log/apache2/dejal-access_log" common
</VirtualHost>

% sudo apachectl restart