Setting Up Multiple Virtual Hosts in WAMP April 2, 2011Posted by Tournas Dimitrios in Zend Framework v1.10.
WAMP, or Windows Apache MySQL PHP , is probably the most used server for PHP developers who uses Windows environment. These are mainly the freelancers who mostly uses laptops as their local development machines. Whatever may be the reason , when you use WAMP , it becomes difficult to manage multiple application installed in same root.
For example while we use WAMP as a development environment, we have different client specific projects residing in different folders in the root and whenever these projects needs to be uploaded in production environment, the absolute paths has to be manually change.
What if we want to have different root folder for each client? Well, this is possible in WAMP using Virtual Hosts. Let us see how to setup the virtual hosts.
First we need to modify two files to create virtual hosts:
- hosts file: This file is in the c:\windows\system32\drivers\etc\ folder
- httpd.conf file: This is in your Apache install’s ‘conf’ folder – e.g. c:\wamp\Apache2\conf\httpd.conf
The hosts files has entries which maps IP Address to a name. By default the name “localhost” is mapped to 127.0.0.1 IP Address : ” 127.0.0.1 localhost “
Now what we have to do is to simply add few more entries per client in this file. You may want to use your clients domain name as mapping key : ” 127.0.0.1 customerdomain.local ”
Add as many entries as you want in hosts file. Whenever you enter “customerdomain.local” in your web browser, windows will first look into hosts file and if it gets the corresponding entry, it sends the request to that IP Address (in our case 127.0.0.1 ) . Now we have to change httpd.conf , Open the httpd.conf file and search for something like:
DocumentRoot “C:/program files/wamp/www”
Add following code after the ‘DocumentRoot “c:/program files/wamp/www”‘ entry in httpd.conf file.
Save your modifications on the hosts and httpd.conf file and restart your wamp server .
Accessing the resources from your browser can be done with :
localhost , customerdomain.local , zapas.local
By default wamp is working in a ” sandbox environment” , for security reasons it can only serve files from it’s root folder . We can override this restriction through “Directives ” in the httpd.conf configuration file . As you see on the last Virtual entry we have included a Directive to allow wamp ( Appache ) to serve documents outside it’s root folder .
On a development environments where many virtualHosts have to implemented , a good practice is to list all the virtualHost’s on a external file and wamp configure to parse this external file . The Directive for this external file would be : Include conf/extra/httpd-vhosts.conf
And now you need to modify the code a bit to match the server name with the one from your ‘hosts’ file and the DocumentRoot with your clients file path