Access virtual host from another machine over LAN Access virtual host from another machine over LAN windows windows

Access virtual host from another machine over LAN


In addition to danp's answer, you can access the virtual host without having to change the client machine's etc/hosts file by assigning a port to the virtual host. This is ideal if you want to access the server with a mobile or tablet device:

  1. Edit server's httpd.conf file at:

    \wamp\bin\apache\apache2.2.x\conf\httpd.conf

    Search for "Listen" (around line 61). You should see the following that allows for Apache to listen for port 80:

    Listen 0.0.0.0:80Listen [::0]:80

    Add the following lines to add listening for port 81 (or any port):

    Listen 0.0.0.0:81Listen [::0]:81
  2. Edit the httpd-vhosts.conf file at:

    \wamp\bin\apache\apache2.2.x\conf\extra\httpd-vhosts.conf

    Change your "Virtual Host" tag to port 81:

    <VirtualHost *:81>    DocumentRoot "D:/websites/project1/"    ServerName www.project1.com</VirtualHost>
  3. Restart Apache server.

  4. On the client machine/tablet/mobile, on the web browser, enter the server's IP address (192.168.0.10, or whatever IP) followed by the port number in the following format:

    http://192.168.0.10:81


In your virtualhost directive, change 127.0.0.1 to *:80 and as Gabriel mentioned, add an entry to the hosts file in the other machine, adding your domain to be associated with the IP of your server.

When you put an explicit IP into the directive, apache will only listen on that IP - but the wildcard will tell it bind to all IPs available to it.

<VirtualHost *:80>    DocumentRoot "D:/websites/project1/"    ServerName www.project1.com</VirtualHost>

If your server is on 192.168.1.70 for example, then in the other machines on your lan, the hosts entry will look like:

192.168.1.70     www.project1.com

Restart apache and it should work fine.

As a note, when you are using virtualhosts, apache will use the first definition as a default for when it can't make a match between the domain passed in the HTTP request header and the sites setup in the config, which is why your default page was appearing.

You told apache to bind to all IPs with the NameVirtualHost *:80 directive, but then didn't setup a site for that external IP. Hope that helps!


There are two computer in local network.

A computer(192.168.1.70) Setup(D:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf):

<VirtualHost *:80>    DocumentRoot "D:/websites/project1/"    ServerName www.project1.com</VirtualHost><VirtualHost *:80>    DocumentRoot "D:/websites/project2/"    ServerName www.project2.com</VirtualHost>

B computer Setup(c:/windows/system32/drives/etc/hosts):

192.168.1.70    www.project1.com192.168.1.70    www.project2.com

B access A,My project is working.