I had the opportunity earlier this week to install and tinker with Apache on Windows. Specifically, Apache 2.0.36 on Windows 2000 Professional. A few observations:

  • It was very easy to install, probably because I downloaded a binary version. With version 2.0, they distribute Win32 binaries only as MSI installers, which is fine by me. On Unix I’ll compile from source; on Windows I’ll install a binary. Within maybe 2 minutes, I had Apache up and running.
  • Configuration is very familiar and was a breeze. There are a few changes with the new thread-based model, but that’s pretty straightforward and allows for a lot of control over how the server runs and scales. For most of what you need to do, I noticed very little new or different in the configuration. When you start to fine-tune and optimize your configuration, then there are some changes to be aware of. Many are documented in the article to which I just linked.
  • Apache receives criticism for its lack of GUI configuration tools, but I think that’s undeserved. First, it’s not true. Second, I really think that a system administrator should be able to read text files. Third, the configuration is not nearly as opaque as it might seem at first. Seriously, except for some extreme cases in which you can really frell things up if you’re not paying attention, the text-based configuration files are easy to understand and use.
  • I also needed to get PHP running. I believe that PHP is still experimental on Apache 2, could be wrong. Either way, I didn’t need to run PHP as an Apache module — it was just on a laptop used for a quick demo — so I set it up as CGI. Again, terrifically easy, largely because I chose the installer route instead of manually configuring everything. Interestingly, the installer would have configured IIS for me, but I needed to set up Apache for PHP by hand. This involved copying three lines into the config file. Whoop-dee-doo. Again, a couple minutes and I had it running.
  • While installing PHP, I learned that PHP would run as an ISAPI module on IIS. Cool. Now that Apache runs like a dream on Win32, though, I have to wonder again why people use IIS, especially if all they need is a web server. Start getting into some of the other services that it offers, like SMTP and FTP, and I begin to understand. Forgive me, though, I am of the mindset that it makes most sense to choose tools that are designed to do one thing and do it well, and string those tools together to build more complex services. Maybe it’s a Unix thing.
  • Even a Thinkpad can be a wicked cool little machine. In fact, even before one of our web servers at work suffered a massive hardware hemorrhage on Friday, I was thinking that in all likelihood the laptop was a better machine than some of our servers. Heh. (Luckily I had made a copy of one of our sites in its entirety on this laptop, which was in fact the motivation for installing Apache in the first place. We had offsite tape backups to work from to restore the site, but it was a helluva lot easier to take them off the laptop.) Anyway, the laptop was much fun to play with. I am so close to buying an iBook.

All in all, even though mine was hardly a scientific or even useful test, I’m happy with Apache 2 and impressed with Apache on Windows. Enough to convince me to stress-test it soon. Why, I don’t know, since I am at heart a Unix geek and have no reason to use Apache on Windows. If you have to run Windows, take a serious look at it. For the rest of us lucky ones, I’m waiting almost patiently for mod_perl to be production-quality on Apache 2. Then we’re a go.