As a web developer I still like to test my sites in Internet Explorer 6. And even though everyone really should upgrade from IE6 for a litany of reasons — the least of which is security — IE6 still remains a popular browser. One of the biggest problems for testing in IE6, however, is that it’s pretty difficult to run IE6 in Vista (at least without quite a bit of registry tinkering). I wanted an easier solution and here it is:
The Big Picture. I run Windows Vista where I can test IE7, Firefox and Opera. I run Microsoft Virtual PC 2007 in Vista with an XP VM that runs IE6. I run a wamp server in Vista, and my XP VM install uses IE6 to access the “localhost” wampserver on Vista.
Goal: so in this tutorial we’re going to setup an XP virtual machine in Microsoft Virtual PC that we are going to use to run IE6 and subsequently “see” the Vista localhost apache server to test our sites. In our XP virtual machine we are going to setup (2) network connections. The first one will be the loopback adapter which will allow the Virtual PC to “talk” to Vista. The second will be a shared usage of Vista’s network adapter so the XP VM can have internet access.
I like to set these up as two separate adapters because:
1. I don’t always need (or want) to allow the VM to have internet access. I turn on the internet network connection to download what I need, and then I turn it off. For security (even though I run security software on the VM), there’s no need in my opinion to let the VM have full-time internet access.
2. This way I can always leave the loopback (XP-to-Vista) on without having to worry about unmonitored internet traffic.
Here’s what you’ll need:
1. Microsoft Virtual PC
2. XP Virtual PC Image – note that Microsoft will disable the functionality of this image January 1, 2010. My guess is that if the demand is still there they will issue a new XP image for developers to use.
3. Wampserver (unless you already have an apache/php/mysql environment already setup).
Pre-Configuration Steps:
1. Download and install Microsoft Virtual PC 2007, get the XP Virtual PC image and setup the image in Virtual PC.
2. If you already have an apache/php/mysql environment running on Vista, go ahead to the next section. If you don’t, go ahead and install wampserver now.
Setting Up the XP Virtual PC to See the Vista Localhost
These steps assume you have already installed Virtual PC, the XP image from Microsoft, and have a wamp server running on Vista.
1. Install the Vista loopback adapter. The loopback adapter lets the XP VM and Vista to talk to each other. You can install the loopback adapter as you would any other new device. You can go through the add hardware wizard from the Vista control panel, elect to manually select a device, go to network adapters, find Microsoft in the left pane, and then loopback adapter in the right pane. Go ahead and complete the wizard.
2. Set a Static IP on the loopback adapter (in Vista). Go to the Network and Sharing Center, Manage Network Connections, and find the loopback adapter. Go to properties, and under TCP/IPv4 settings, set a static (non-dhcp) ip address. I like to use 192.168.25.1 (you can pick whatever you like — but since most networks work with 192.168.1.1, I like to keep the loopback adapter totally separate).
3. Go to the XP VM and configure the two adapters. Before you load the VM, go to the Virtual PC console and edit the settings for the XP VM (again — before you run the VM or while you have it not running). Make sure you have 2 network adapters configured (you can have 4). The first one should be “Microsoft Loopback Adapter” and the second one should be whatever your system’s regular network connection is (you can pick your wireless or your wired connection — I prefer to use the wired).
4. Configure the Two Adapters in the Virtual Machine In the network connections find the loopback adapter (remember we are in the XP VM now, and not in Vista) and change it to a static IP: 192.168.25.2. You shouldn’t have to configure the second adapter (the wired or wireless one from your computer) as it should already be set to DHCP.
5. Test that Vista can see the XP VM, and that the XP VM can see Vista.
a. In the XP virtual machine, ping the loopback adapter in Vista: 192.168.25.1. If successful, this means that the XP VM can “see” the Vista apache server.
b. In Vista, ping the “XP Loopback” adapter (remember you setup the loopback adapter in Vista, but the XP VM has an instance of this loopback adapter): 192.168.25.2. If successful, this means that Vista can “see” the loopback connection in the XP VM.
6. Tests and Finishing Touches.
a. Check that you can get a regular internet connection in the VM. It should work as long as you have the second network connection (the shared one) enabled.
b. On the Vista machine first test that the wampserver is running and that localhost is working. Make sure that wampserver is set to “put online”.
c. Now, (finally) test that the XP VM can see the apache localhost by going to a browser in the XP VM and typing: 192.168.25.1 . You should be able to see the same localhost page that you got in step 6b.
– If not, the problem may be the way Vista configures networks. Go to the Network and Sharing center and find the loopback network (you probably will see your “regular” wired/wireless connection and your loopback-based connection probably “unidentified network”). Go to “customize” this network and select “Private” network.
7. Know Issues/Reflections
a. Sometimes Vista seems to “forget” that I set this network connection as Private. So I do need to go in to the Network and Sharing Center and re-configure the connection so that it’s Private and not Public.
b. You must remember to turn on the wampserver, and to have the wampserver set to “Put Online” mode. You may want to put it back to “Put Offline” when you are done.
So there it is. It’s takes a few steps to get it right, but once its configured you have a great IE6 sandbox as well as an XP VM for any other testing you need.