I’ve had my hands in Unix/Linux system administration for most of my life. I first touched Unix at University, but didn’t really get into it until a couple years later when I was working in Manufacturing and Technical Support in my first job. Later, at Silicon Graphics, I was deep in it – at one point being the go-to person in our backline support center for obscure topics like troublshooting a problematic sendmail.cf (old unix heads will understand). And of course, I’ve administered my own Linux systems since the 90’s.
Some months ago, a warning about PHP compatibility in WordPress woke me up to the reality that my system that serves this site was terribly out of date. I had done security patches and various updates, but the long rock-solid foundation of Ubuntu 16.04 (LTS) and Nginx 1.10 should now be brought up to current along with PHP. Took me a few months to get around to it.
Think how daunting this task is. Each major update of an operating system is fraught, even for Windows and macOS which assume less sophisticated users than does Linux. I had a carefully crafted multi-site Nginx web server, handling five domains and two semi-private experiments in a combination of plain HTML/CSS and dynamic database-backed Content Management Systems (mostly WordPress). To bring this server up to current, Linux would require three (3!) major updates, not to mention the updates to MySQL, PHP, Nginx, and other various bits. sigh.
An alternative was to set this all up from scratch again. I could setup a new server with Ubuntu 22.04, and the latest Nginx and PHP, and maybe move the database to MariaDB. I played with this for a bit. Setting up the new server is a quick thing, but getting everything else migrated and working just right… Another sigh.
So I bit the bullet and ran the updates.
Ubuntu 16.04 -> Ubuntu 18.04: pretty easy
Ubuntu 18.04 -> Ubuntu 20.04: Ok, that wasn’t so bad.
Ubuntu 20.04 -> Ubuntu 22.04: Hmmm. Seems like it just worked.
I tried not to hold my breath too much as I started my testing. I had to disable and delete Apache, which had somehow got installed and enabled even though Nginx was already configured. I had to make a few changes in my Nginx configs so that the various domains would use the right version of PHP. A couple other small tweaks, like disabling a broken old WordPress plugin that wasn’t needed anymore, and…
It worked! Wow!
Deepest thank to all the Open Source contributors that make this possible. Truly amazing!