The Forever Stack

The Forever Stack

| storiesphpmysql | Updated 2025.12.16

Recently, while looking through my backups, hoping I’d finally stumble upon a long-forgotten Bitcoin wallet that never seems to materialize, I uncovered another artifact of similar value, though sentimental rather than monetary. I found some old backups from a community I joined and eventually took the technical reins of, sometime around 2011.

Ecstatic about the find, I started spelunking through the code and database dump, unraveling long-forgotten memories. It was an old phpBB forum, version 3.0.9, running on the good old PHP 5.6 backed by MySQL 5.7. Name a better duo.

ℹ️
Relevant dates
phpBB 3.0.9 release mid‑2011; 3.0 branch EOL in 2015; PHP 5.6 EOL in Dec 2018; MySQL 5.7 EOL in Oct 2023

Reanimation

My first thought was to set it up again. But after a decade of web development, I’ve grown somewhat pessimistic about modern tech stacks, so I initially shelved the idea, sure it would be a pain to get running again. Instead, I just resumed manually (rip)grepping through the code and SQL.

That didn’t last long. With some time on my hands, I decided to give it a try. I remembered I had Docker, and surely there must still be images out there for PHP 5.6 and MySQL 5.7, and indeed, there were.

After literally 30 minutes of work, mostly spent writing my own Dockerfile for PHP to include a few extra extensions, the forum was back online, alive again after more than 12 years since the last post was made. 

The happiness of seeing such a tangible blast from the past come alive was matched by my surprise at how smoothly it all worked. No fuss, no dependency hell, no broken repositories lost to time. I’m still in awe. Even some of the current projects I work on take hours to boot up, and that’s for maintained, production-grade software.

I feel like we have definitely lost something and I am not sure what we have gained. 

Why this still worked?

Because it was just the old LAMP trio doing its thing: Apache, PHP, MySQL no extra daemons, no third-party services, no six package registries to appease, nothing to phone home for at boot, so there was basically nothing to rot in the middle all these years.

phpBB from that era was built to run on a wide, boring baseline and it stayed well within the guardrails, plain PHP 5.x, MySQL, a config.php pointing at a database and when you recreate exactly that baseline, it just wakes up like it took a nap, not a coma.

The real trick was not "upgrading" anything: PHP 7/8 introduce a bunch of backwards-incompatible gotchas (evaluation order changes, foreach by-reference quirks, non-static calls, etc.), but by pinning the runtime to PHP 5.6 you sidestep all those mines entirely, so the code runs exactly like it did back then.

Docker turns this into time travel: pull PHP 5.6 and MySQL 5.7, mount the files, import the dump, wire up config.php, and you’ve basically rebuilt 2011 without arguing with today’s OS packages or toolchains that have “moved on” without you.

And because phpBB’s state lives in MySQL and not in some bespoke search/index/auth service, the restore path was hilariously simple: import database, point app at it, done, no rebuild step, no vendor dance, no missing artifact servers from a decade ago. (well, here I am lying a bit, we lost all the images)

That’s the punchline: the smaller the dependency surface and the more boring the assumptions, the higher the odds it still boots a decade later, unlike modern stacks that scatter themselves across multiple runtimes and registries and then age about as gracefully as milk left on the counter.

What now?

Obviously, putting such old software online today would be a security nightmare, given the millions of exploits PHP and MySQL have accumulated since then. Still, I might just publish the HTML as a static archive, for posterity’s sake.

 

───────────────────────────────────────────────────────────────────────

RELATED POSTS

───────────────────────────────────────────────────────────────────────

COMMENTS

Comments from this blog and Bluesky

» Leave a Comment

Markdown supported. Comments visible after moderation.

No comments yet. Be the first to comment!