After upgrading to El Capitan, Apple’s new Operating system (version 10.11), I found all my virtual hosts weren’t working anymore!
This is due to the upgrade creating a new
/etc/apache2/httpd.conf file and overwriting your old one. Luckily, they don’t quite remove your previous configuration file, they back it up for you under
If you’ve installed El Capitan and are not sure how to fix this, I’ve written a quick one-liner that will get you back on your feet. Simply open Terminal (From a Finder window, go to Applications > Utilites > Terminal) and paste in the following line:
rm -rf /etc/apache2/httpd.conf && mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf && sudo apachectl restart
And there you have it. Back up and running in no time at all.
Let’s go into that command a little deeper so you can understand what we’re doing:
rm -rf /etc/apache2/httpd.conf
This line is simply removing the new configuration file Apple has created for us. We have a backup of it already and we’re going to change the name of our backed up file to this one, so we don’t need it anymore. Please be sure you have already upgraded to El Capitan otherwise you may not have a backup file. To check if you have a backup file available, simply run
ls -la /etc/apache2/httpd.conf~previous and you should get something back like this:
-rw-r--r-- 1 root wheel 21002 4 Jul 17:41 /etc/apache2/httpd.conf~previous – if not, do not continue or you may remove your only configuration file.
The second line:
mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
simply renames your backed up configuration file to the one we just deleted.
Lastly we want to restart Apache by running:
sudo apachectl restart
which will re-cache your configuration files which we have just updated.
And there you have it, an easy switch over but something which I found rather annoying during the upgrade. Hopefully this tutorial helps you out if you’ve run into the same problem.