Virtual Hosts on Apache

Working on multiple Web Projects on the same system might become a headache to manage. You must use Virtual Hosts if you are using Apache as pointed out by David Kiss. Following are the steps required to create a Virtual Host called magento in your system such that when you type http://magento the site is displayed, as per Mac OS X Lion using MAMP:

    1. Backup your files.
      1. Open a terminal window.
      2. Backup your hosts file:
        sudo cp /private/etc/hosts /private/etc/hosts.bak
      3. Backup your Apache configuration file:
        cp /Applications/MAMP/conf/apache/httpd.conf /Applications/MAMP/conf/apache/httpd.conf.bak
      4. Backup your Virtual Hosts configuration file:
        cp /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf.bak
    2. Update the hosts file.
      1. Edit the hosts file:
        sudo nano /private/etc/hosts
      2. Add the name of the Virtual Host you want on your system:
        127.0.0.1 magento
      3. Save and exit:
        Press Ctrl+X then Y.
    3. Update the Apache configuration file.
      1. Edit the Apache configuration file:
        nano /Applications/MAMP/conf/apache/httpd.conf
      2. Un-comment the line where httpd-vhosts.conf is found such that it looks like this:
        Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
      3. Save and exit:
        Press Ctrl-W then Y
    4. Update the Virtual Hosts configuration file.
      1. Edit the configuration file:
        nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
      2. At the end add the following:
        <VirtualHost *:80>
        ServerName magento
        DocumentRoot /Users/fraki/Sites/magento
        </VirtualHost>
      3. Save and exit:
        Press Ctrl-X then Y
    5. Place the site contents in the folder specified.
    6. Navigate to the virtual host.
Using Virtual hosts

You might want to check the official documentation of Apache about Virtual Hosts, in this post I am using name-based virtual hosts.