My parents thought I was doing homework. I was compiling Apache from source.

The year was 1999. I had a spare 133MHz Pentium, a Red Hat 6.0 install CD from a Linux magazine, and absolutely no idea what I was doing. Six months later I was running a Quake stats page for our school's gaming club off a residential cable connection with a dynamic IP.

The Installation

[root@beast /]# rpm -ivh apache-1.3.9-4.i386.rpm
Preparing...     ########################################## [100%]
   1: apache      ########################################## [100%]
[root@beast /]# rpm -ivh mysql-3.23.22-1.i386.rpm
Preparing...     ########################################## [100%]
   1: mysql       ########################################## [100%]
[root@beast /]# rpm -ivh php-3.0.15-2.i386.rpm
Preparing...     ########################################## [100%]
   1: php         ########################################## [100%]
[root@beast /]# service httpd start
Starting httpd: [ OK ]

That [ OK ] was the most satisfying thing I had ever seen on a screen.

The Learning Curve

I spent three weeks reading the Apache documentation. Not Googling it — there was no Google — reading the actual HTML docs that came bundled with the install. I learned what DocumentRoot meant. I learned what AllowOverride All could do (and why it shouldn't). I learned that 755 permissions on your CGI directory are not, in fact, a good idea.

But I also learned that I could build things. Real things, running on real hardware, accessible to anyone with an internet connection.

That's a feeling I've never quite gotten back.