A Docker-based server stack for running old sites locally.

Ever had an old Joomla 1.5, 1.6, 1.7, 2.5, 3.0–3.8 site you want to upgrade to something reasonably modern?

Tough luck trying to do that on a commercial host. The oldest PHP version they tend to make available is too new for the old version of Joomla –and the most likely obsolete or defunct extensions on your old site– to run without a significant number of issues. The newer MySQL / MariaDB database versions available on the host no longer support the old password hashing supported and required by old versions of PHP anyway. You are stuck.

This server stack can run PHP versions as old as 5.6, MySQL versions as old as 5.5, and Apache versions as old as 2.0, on your computer, using Docker. You can upgrade the PHP and MySQL versions as you go through increasingly newer versions of Joomla and its extensions, until you reach the point where you have an up-to-date site. Then, you can take a backup using Akeeba Backup —or any other method you are familiar with— and deploy it to your live host.

I have indeed gone as far back as a Joomla! 1.5.18 site from 2012 with this stack. Joomla! 1.0 from 2005–2007 and very old versions of Joomla! 1.5 from the late '00s will not run, as they need PHP 4.4 to 5.3 and MySQL versions in the 3.x and 4.x range. These are PHP and MySQL versions which became end-of-life long before Docker came into existence in 2013. As far as I can tell, unless you have a really old, but still functional machine, physical or virtual, from nearly twenty years ago you're out of luck with sites that ancient.