Mac OS X setting up virtual hosts


Hosting a website on your Mac using Virtual Hosts

9 Jun, 2021 · 2 min read

You might remember the days of MAMP/XAMP/WAMP? Well, for Mac OS X, we don’t need these tools anymore.

It’s actually possible to host a website on your local Mac, and it’s not as hard as you would think!

Today, we’ll set up a local PHP website that we can reach through our browser.

Enabling virtual hosts on Mac OS X

The first step to making this work is enabling virtual hosts on Mac OS X.

To do this, we need to modify the httpd.conf file. Execute the following command in your terminal.

sudo nano /etc/apache2/httpd.conf

Look for the following line:

#Include /private/etc/apache2/extra/httpd-vhosts.conf

And below that, on a new line add the following:

Include /private/etc/apache2/vhosts/*.conf

This tells Apache to load all .conf files in this directory.

Note: You could also add all the hosts in the httpd-vhost file, but I found this a cleaner method.

Now we need to make the configuration files, make sure the directory exist or create it.

mkdir /etc/apache2/vhosts

Now we can create our first configuration in that folder.

sudo nano /etc/apache2/vhosts/daily-dev-tips.conf

Place the following information inside:

<VirtualHost *:80>
    DocumentRoot "/Users/chrisbongers/www/daily-dev-tips"
    ServerName daily-dev-tips.local

    <Directory "/Users/chrisbongers/www/daily-dev-tips">
        AllowOverride All
        Require all granted

You have to set the DocumentRoot to your own directory on your local machine. For me, it’s a www folder at my user level. Next, set the ServerName to the URL you want to serve it on.

Now we need to restart Apache

sudo apachectl restart

However, if we now visit: http://daily-dev-tips.local we don’t see anything…

Mapping the local domain

To make the local domain work, we need to map the domain to our local server.

Modify your host file.

sudo nano /etc/hosts

And add a line like this:       daily-dev-tips.local

Make sure you use the domain you set in the vhost file.

Testing our website

If you open your website link, another app might point to the default page, depending on whether you already set up the folder.

I didn’t, so create the folder in the place you provided in the vhost file and create a simple index.php inside.

echo 'Hello world from my own Mac OS X server';

Now open the website again and see the beauty of your server.

Mac OS X Virtual Host server

Thank you for reading, and let’s connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Spread the knowledge with fellow developers on Twitter
Tweet this tip
Powered by Webmentions - Learn more

Read next 📖

Thank you, Apple, for hijacking port 5000 😣

3 Dec, 2021 · 2 min read

Thank you, Apple, for hijacking port 5000 😣

Streaming desktop sound and microphone on Mac with Streamlabs

25 Nov, 2021 · 2 min read

Streaming desktop sound and microphone on Mac with Streamlabs

Join 2099 devs and subscribe to my newsletter