Skip to content

Instantly share code, notes, and snippets.

@qichunren
Forked from trey/virtual_hosts_osx.md
Created November 16, 2012 04:34
Show Gist options
  • Save qichunren/4084082 to your computer and use it in GitHub Desktop.
Save qichunren/4084082 to your computer and use it in GitHub Desktop.
The Absolute Least You Need to Do to Use Virtual Hosts on OS X

The Absolute Least You Need to Do to Use Virtual Hosts on OS X

Enable Web Sharing in System Preferences > Sharing. (No need to do this in Mountain Lion. You may need to run sudo apachectl start, though.)

Edit these files:

  • /etc/apache2/httpd.conf
  • /etc/hosts
  • /etc/apache2/users/your-username.conf
    • In Mountain Lion, you'll need to copy Guest.conf to [your-username].conf. Also, be sure to change the first line to be <Directory "/Users/your-username/Sites/"> and then also create the ~/Sites folder (which will, magically, still have the correct folder icon with the compass on it).

(I keep these files in a TextMate project so I can get at them quickly and don't have to remember which files I need.)

In httpd.conf, uncomment this line:

LoadModule php5_module        libexec/apache2/libphp5.so

In hosts, add your local sites in the format:

127.0.0.1	your-site-name.dev

In /etc/apache2/users/your-username.conf, add this line to the very top of the file:

NameVirtualHost *:80

Change None to All in this line (to allow for things like mod_rewrite):

AllowOverride All

Add FollowSymlinks to this line:

Options Indexes MultiViews FollowSymlinks

Add new sites in the same file in this format:

<VirtualHost *:80>
    ServerName your-site-name.dev
    DocumentRoot "/Users/your-username/Sites/your-site-name/"
</VirtualHost>

Any time you make changes to any of these files, you'll need to run this command:

sudo apachectl graceful

Check out this script for an easy way to add new sites (and feel free to fork it and adapt it to your uses).

See also

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment