(With apologies to both Brian Behlendorf and Mr. Bad for the title.)

In 1996, the final official release of NCSA HTTPd was made, 1.5.2a. If you were born after 1996, just remember that there were web servers which came before Apache. Also, get off my lawn.

In 2007, I decided on a lark to get ncsa-httpd working on (at the time) modern Linux/GCC. It only took a handful of changes, and I packaged it up as an (unpublished) Debian package, ignoring modern FHS requirements and continuing to put everything under /usr/local/etc/httpd/, as it was in the 90s.

This evening, my IRC friend Screwtape posted a link he found about building a new Gopher search engine using 1990s technology, and that got me thinking about ncsa-httpd again. I went back to my project from 2007 and discovered it was no longer buildable on GCC 5, and with help from Screwtape, I got it building again.

HTTP/1.0 200 Document follows
Date: Mon, 22 May 2017 05:56:08 GMT
Server: NCSA/1.5.2
Content-type: text/html

After that, I continued on, finding a few bugs in the source code, fixing them, finding a few more, etc. After a few hours I stopped and realized what I was doing, and threw those patches out. I was literally reinventing the Apache project, 22 years too late.

I’ve made the patches required to build on modern systems available in this repository. And if you’re interesting in the Debian packages, they’re available as well.

Oh, and it should go without saying, do not use this in a production environment, on anything accessible from the Internet, etc. We’re talking about code which has been unmaintained for over 20 years, and has many known vulnerabilities.