How to use xip.io with several virtualhosts and server names? (local dev)

edDraw picture edDraw · Sep 24, 2012 · Viewed 8.9k times · Source

Is it possible to use xip.io to access local website when using virtualhosts with different server names? (I'm on linux, fedora).

For instance, let's say I have 3 websites I can access locally like so:

- http://localsite1
- http://localsite2
- http://localsite3

I would like to access them with other devices via xip.io:

- http://localsite1.192.168.0.15.xip.io
- http://localsite2.192.168.0.15.xip.io
- http://localsite3.192.168.0.15.xip.io

I can't figure out how to make this work, is it even possible?

Answer

kaplan picture kaplan · Apr 4, 2013

Yes, it should be possible. I think you can have as many localsite domains as you want to manage. Check your hosts and httpd-vhosts.conf files.

A server alias in my /etc/apache2/extra/httpd-vhosts.conf works for me. I use a * instead of the current IP in my Network Preferences.

Remember to restart the Apache server after you make a change.

For example, my current local IP from the Mac OS System Preferences > Network says: Wi-Fi is connected to Workalicious2011 and has the IP address 10.0.1.118.

So my /etc/apache2/extra/httpd-vhosts.conf file has the following:

# Ensure that Apache listens on port 80
Listen 80
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot "/Users/davekaplan/Sites/workalicious.com"
  ServerName dev.workalicious.com
  ServerAlias dev.workalicious.com.*.xip.io
  ErrorLog "/private/var/log/apache2/dev.workalicious.com-error_log"
  CustomLog "/private/var/log/apache2/dev.workalicious.com-access_log" common
</VirtualHost>

And my /etc/hosts file has:

##
Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1         localhost
255.255.255.255   broadcasthost
::1               localhost
fe80::1%lo0       localhost

127.0.0.1         dev.workalicious.com

On my local network I am able to browse to the following and see my local development site: http://dev.workalicious.com.10.0.1.118.xip.io/

I have a similar problem where I'm working on one mac and want to test on computers and other devices. Using .xip.io works great when you don't have access to a hosts file, on say a tablet.

If you have access to your hosts file on the computer you can add the IP of the local development host computer and just browse to the same url. It's great for PCs or other Macs. For example, I would add 100.0.1.118 dev.workalicious.com to the testing computer's hosts file and as long as I'm on the local network I can browse to dev.workalicious.com on that testing computer and see the site hosted over on the development computer.

Another approach that I used before .xip.io is Charles, it works great and there are some good blog posts out there on how to setup. It's currently $50 for a 1-4 Users.

( I'm working on try to figure out how to use Pow and Apache for a similar approach, but I don't think it works outside the local development machine. )