Apache 1.3.4 on Windows NT 3.1

Yes, I know it’s crazy old, totally useless, but it did mostly compile.

Apache 1.3.4 running on Windows NT 3.1 Advanced Server

Apache 1.3.4 running on Windows NT 3.1 Advanced Server

Assuming it’s hasn’t been crashed or hacked it should be online here:


Unlike Serweb 0.3, Apache is HTTP 1.1 compliant, which means that I can put it behind haproxy, and enjoy the fact it doesn’t need a dedicated IP address.

Although I can’t imagine anyone wanting it, here is the binary/source and my htdoc dump.  Download it here: apache-NT-31.zip & unzip.exe

Apache console mode

Apache console mode

I had to pull out some stuff, like some of the service features, so it really only runs as a console app.

I’ve compiled it with /Zi meaning full debug and no optimization.  If you want to re-compile you’ll probably want either the Win32 SDK, or Visual C++ 1.0 32bit, and replace the headers and libraries from the Windows NT 3.5 SDK.  Much like trying to build GCC 2.6.3 on Windows NT.

Also in a silly way, thanks to Qemu, I’m now running both OS/2 & Windows NT on the same server, running Linux.

9 thoughts on “Apache 1.3.4 on Windows NT 3.1

  1. Great effort as always.

    While somewhat “useless” in a contemporary sense, I’ve certainly had some strange projects (often equally as useless) that I remembered you had done something with (though they currently escape me – I really should write them down like you!).

    Ensuring that these legacy things aren’t forgotten and taking some of the bitrot from them is a great service and I for one don’t tire of them!

    Thanks for the effort!

    • What makes it more so useless is that I really don’t have anything to serve… I mean in this day & age all I really have is this blog, and some old abandonded crap.. It’s just static pages. It’s not like I need another VM with another OS, running yet another web server to serve some static page ‘just because’ ….. but here we are!

      From my long abandonded front page thing, to various old dead sites I’ve “collected”… This blog is the only living thing. I guess that is OK, and I guess at some point someone will collect me…!

  2. This is very cool. I never really did delve into Windows ‘NT’ below 2000. This whole idea makes it worth the while!

    Meanwhile, I’d love to see the list of strings that the server matches with to determine the client user-agent. It’s telling me (Chrome/Windows 10) that I’m a robot:

    “Your current User-Agent string appears to be from an automated process…”

  3. Excellent stuff. I have a laptop with NT3.51 and still regularly use NT4 for testing software I write in C/C++, a lot of which is thoroughly pointless but fun to write nevertheless (a Tcl interpreter and a small mail server plus dozens of utils for sysop use at work). I used to dabble a lot with Apache and my own webserver ran Win2k until I couldn’t afford the broadband about 4 years ago. No problems with it whatsoever. It ran extremely well 24/7. I really must get a website back online sometime!

      • Hi, thanks for the offer of a plug! A lot of work to be done yet though. These are multi-year projects done in my spare time and there are months on end when I don’t have time to work on them at all. My job as an IT manager/sysadmin regularly overflows to take up a lot of my free time. I have Tcl doing useful tasks on my work network already though, talking directly to Safenet HASP licence servers and querying licence expiry plus doing log filtering, network analysis and other stuff. I try hard to make sure it works in old O/S such as NT4/2K as there’s then a good chance it will support ReactOS

        • I know all to well about work overflows, and stuff going nowhere on the quick.. I’ve only been documenting my seeming ADHD over the last decade… lol

          All the cool kids use github, but I like the binary releases on sourceforge, and it’s been around far longer than any of these flash in the pan things, so there may always be people interested.

          • I know that feeling very well. My Tcl man file is something like 600 pages already when pasted into Word, and I’ve written something like 400+ Tcl playground scripts and 120 test scripts but after a couple of years work I’m no closer having anything I’d want to release. The mail server manual is already 100 pages. I have the memory of a goldfish so I always think documentation is worthwhile and is force of habit from the workplace esp. re: ISO compliance n stuff. If it wasn’t for the amusement and interest of tinkering with this stuff then I wouldn’t be doing it. There’s always “just one more big bug” which needs fixing before I’d unleash it on unsuspecting humanity

            Have considered Git and other VCS but I never got around to figuring how to use VCS even though I look after a team of programmers using Mercurial and an Hg server. It all seems far too “faffy” for me for my small projects. Simple regular ZIPs and diffs when nesc work just fine and I have a harder time catastrophically screwing up revision history as I did when I was testing Hg and SVN!

Leave a Reply