Microsoft tell you that it’s not possible to run IIS, the Windows Web Server, on Windows XP Home Edition (see note 1). In previous versions of Windows, the home versions (Windows 98, ME etc) included something called Personal Web Server, which was a bit like a cut down version of IIS. Imagine my horror when I had to create a website using ASP (not my choice, I’m a PHP kinda nerd.) only to find that my shiny new operating system couldn’t even do something my mum and dad’s old Windows 98 box could do.
Having paid seventy odd pounds for this ‘upgrade’ I was a bit miffed that Microsoft had discontinued PWS. Then, after a bit of Googling, I discovered Win XP Home could run a web server after all – and IIS at that. As a bit of a bonus, you can also access the Windows XP Pro / Windows 2000 style advanced security settings (see note 2). Here’s how it’s done.
You will need:
- Your Windows XP Home CD (or the I386 folder on your hard drive)
- A Windows 2000 Advanced Server CD (I imagine it’s possible to use a 2000 Professional or XP Professional CD, but I can’t confirm this)
- Find and edit the file
X:\WINDOWS\INF\SYSOC.INFwhere X is the drive with your Windows XP Home Edition installation.
- Near the top should be a section called
- Find a line like this:
- Change it to this:
- Get the iis.dl_ and iis.in_ from the win2k server cd and copy them to a directory on your HDD.
EXPAND IIS.DL_ IIS2.DLLfrom a command prompt
x:\WINDOWS\SYSTEM32\SETUPwhere X is your Windows drive.
- Now go to Add/Remove Programs in the control panel and Add/Remove Windows Components.
You should have IIS options and I could even options to deselect components which (apparently) you can’t do on XP Pro.
If you just need IIS web server I recommend the default settings to stop any confusion. If you are confident enough to change these and want to then go right ahead.
- It will prompt you for files. Get them from XP Home CDs, Windows 2000 CDs,
X:\WINDOWS\I386, etc. (the CDs should have all you need)
- You can get to your IIS from Control Panel’s Administrative Tools.
index.htmlfile in the
x:\Inetpub\wwwrootand add it to the list of Default Documents under the Documents tab of your website’s properties.
Make sure you set up Inetupb’s wwwroot to be shared with other users. (See Note 2 for if this causes any problems)
Open up IIS from Administrative Tools and click the Directory Security tab, right click your default web site and choose properties. Click Edit under “Anonymous access…” and Edit the account for anonymous access. Click Browse, Advanced and Find Now. Select the new user account IUSR_PCname. Click OK, OK, delete any characters in the password field and click OK, OK and OK again.
- If you have followed these steps you should see your website when you type
http://localhost/in the address bar of your browser.
Thanks to Richard Sandoz whose guide helped me a lot.
Note 1: As far as Microsoft are concerned, you need Windows XP Pro to do IIS – full stop. There was a workaround for this posted on their MSDN knowledgebase as Q310090 – but this has been removed You can notice that while it doesn’t exist, both Q310089 and Q310091 (totally unrelated) do!
Note 2: Contrary to common belief, you can also access the Windows XP Pro / Win2k security type settings on XP Home. To do this, all you have to do is reboot into safe mode and logon as the administrator. If you’re having any problems accessing the site from other PCs on your network, try doing this and selecting the wwwroot folder. Right click it and select Properties. There you’ll see our beloved Security tab with all the users listed. What you need to do now is Add the user mentioned above (IUSR_PCname) to the users with read access to this directory. After this everything should function normally.
Note 3: Don’t make the mistake I did of spending hours trying to figure out why you couldn’t see your site from it’s IP address. You will be able to see it from your own internal IP address for your network (in my case 192.168.1.69). However, if you try to use your WAN/Internet IP address, you will get a DNS error or “Cannot find server” message. However, if you can get someone outside your LAN to try and access it then it should work just fine.