End-of-Life Upgrades: PHP, Node.js, Python, MySQL and Ubuntu
I move your app off an end-of-life PHP, Node.js, Python, MySQL or Ubuntu version, before or after the deadline. Server upgrades are done by building a fresh server and moving to it, never in place. For small teams and agencies. From $390 ($300 founding) for one runtime; typically 1–3 weeks. Email your versions to start.
See a sample report, proposal and weekly update- Price
- from $390
- Founding
- from $300
- Timeline
- ~1 week
- Format
- Fixed scope, fixed price
- Hours
- US Eastern Time, async
Deadlines that apply
- PHP 8.1Ended Dec 31, 2025
- Node.js 20Ended Apr 30, 2026
- MySQL 8.0Ended Apr 30, 2026Upgrade path: 8.4 LTS
- Python 3.10Ends Oct 31, 2026
- PostgreSQL 14Ends Nov 12, 2026
- PHP 8.2Ends Dec 31, 2026
- Node.js 22Ends Apr 30, 2027
- Ubuntu 22.04Ends Jun 1, 2027End of standard support; ESM after
- Python 3.11Ends Oct 31, 2027
Who this is for.
A good fit if
- SaaS teams whose app still runs on an end-of-life or soon-to-end version
- Agencies with several client servers on old Ubuntu or PHP
- Founders who got a host notice, a scanner warning or a questionnaire question
Common triggers
- A deadline: Node.js 20 and MySQL 8.0 ended 30 Apr 2026, Python 3.10 ends 31 Oct 2026, PHP 8.2 ends 31 Dec 2026, Ubuntu 22.04 standard support ends May 2027
- A security scanner flagging an unsupported version
- A new package that needs a newer runtime
- The host dropping an old version
Not a fit if
- You need the upgrade done in place on a live server with no new server (I don’t do in-place OS upgrades)
- The app needs a framework upgrade too and hasn’t been assessed (combine with Laravel Upgrade or a Codebase Assessment)
- You want a paid extended-support subscription instead of upgrading (that’s a vendor product)
What I do, and what you get.
What I do
- Check which versions you run and what depends on them
- Test the app on the new runtime and fix incompatibilities in your code and dependencies
- For OS upgrades, build a new server on a supported Ubuntu, move the app and data, switch over, and keep the old server for rollback
- For MySQL, upgrade 8.0 → 8.4 LTS on a new server or a tested copy, with checks before and after
- Update Docker images, CI and deploy scripts to the new versions
- Deploy in an agreed window with a written rollback plan
What you get
- Compatibility report: what changed and what I fixed
- Code and dependency changes as a pull request
- Upgraded runtime on staging and production (or a new server)
- Updated Dockerfiles, CI config and deploy scripts
- Rollback plan and the next end-of-life date for each runtime
- Handover notes
Your part
- Access to repo, servers or cloud account
- Someone to test key flows on staging
- Approval of any new server costs, and a maintenance window
- DNS access if the server address changes
Included
- PHP, Node.js, Python or MySQL version upgrade
- Ubuntu upgrade by rebuild and migrate
- Code and dependency fixes for the new version
- Docker, CI and deploy updates
- One cutover with rollback plan
Not included
- In-place OS upgrades (do-release-upgrade)
- Mail server migration
- Framework major upgrades (see Laravel Upgrade)
- Paid extended-support subscriptions
- Hosting costs
Fixed prices, agreed before work starts.
One runtime (for example PHP 8.2 → 8.4) on one app
One runtime plus an OS rebuild, or two runtimes
Several runtimes (for example Ubuntu + PHP + MySQL) moved to a new server
Build your scope
- Timeline
- ~1 week
- Payment
- Paid in full before work starts
- Earliest start
- Oct 5
Founding price: 3 of 7 spots left, until Mar 31, 2027 — one-off work, in return for a testimonial. How it works
Prices are in USD, paid by bank transfer against an invoice. Work under $1,000 is paid upfront; larger work is 50% to start and 50% before handover, or monthly milestones. How working together works
Variations
- PHP
- Moves to 8.4 or 8.5 (8.3 buys only one more year); if Laravel is involved, pair it with Laravel Upgrade.
- PHP 8.2 before 31 Dec 2026
- The Starter plan covers PHP 8.2 → 8.4 on one app at a fixed price, with a staging test and a deploy you can roll back.
- Node.js
- 20 → 22 or 24 LTS for build tools, Nuxt/Vue builds or Node services.
- Python
- 3.9/3.10 → 3.12 or 3.13 for FastAPI, Flask or Django apps and workers.
- MySQL/MariaDB
- 8.0 → 8.4 LTS, or MariaDB to a supported LTS, tested on a copy first.
- Ubuntu
- 20.04/22.04 → 24.04 LTS on a fresh server.
How it runs.
- 01
Send your versions
Email your versions and hosting.
- 02
Quote and date
I send a fixed quote and a date, then an invoice.
- 03
Test and fix
I test on the new versions and fix what breaks.
- 04
You test staging
You test on staging and we pick a window.
- 05
Cut over and hand over
We cut over, keep a rollback period, and I hand over.
Where I have done this before.
WordPress Hosting Control Panel
Managed PHP 8.1–8.4 side by side on customer servers and installed full Ubuntu stacks on five clouds.
Read the case study →Healthcare · Patient booking · Bilingual webHospital Website & Serial Booking System
Built, not yet live: Docker runtime and tools images, a server runbook and a restore drill.
Read the case study →Questions buyers ask.
Which versions are end of life?
As of 25 Sep 2026: Node.js 20 and MySQL 8.0 ended 30 Apr 2026, and Ubuntu 20.04 standard support ended May 2025. Python 3.10 ends 31 Oct 2026, PHP 8.2 on 31 Dec 2026, Node.js 22 on 30 Apr 2027 and Ubuntu 22.04 standard support in May 2027. Sources: php.net, endoflife.date, ubuntu.com.
What happens if I stay on an end-of-life version?
It keeps running, but security fixes stop. Scanners flag it and some hosts and packages drop it.
Why not upgrade Ubuntu in place?
A fresh server is tested before any traffic moves, and the old one stays as a rollback. In-place upgrades can fail halfway with no clean way back.
Will there be downtime?
For runtime upgrades, usually just a deploy. For a server move or database upgrade, a short planned window; I tell you the length after rehearsal.
Which version should I move to?
The newest one your framework and packages support, so you get the longest runway. The report says why.
Can you do several servers?
Yes, priced per server after the first.
Ask about End-of-Life Runtime Upgrade.
Tell me what you have and where it hurts. I reply within one US business day with either a fixed quote or the entry step that makes a fixed quote possible.
Helpful to include
- Runtimes and versions (php -v, node -v, python3 --version, mysql --version, lsb_release -a)
- Framework and version
- Hosting (server, Docker, platform)
- Number of servers
- Database size
- Deadline and reason
More in Application Modernization
Laravel Upgrade
I upgrade your Laravel app to Laravel 13, including packages, PHP version, tests and deploy, not just the code diff. For small SaaS teams and agencies. From $390 ($300 founding) for one version hop with tests; typical timeline 1–3 weeks. Laravel 12 security fixes end 24 Feb 2027. Email your versions to start.
Legacy PHP → Laravel
I move an old custom PHP or CodeIgniter app to Laravel module by module, while the old app keeps running, so you never face a big-bang switch. Every project starts with a Codebase Assessment. For small SaaS teams and businesses. From $1,300 ($1,000 founding) per monthly milestone; typical projects take 3+ months, from $3,900 ($3,000 founding).
Containerize a Legacy App
I package an older app, without rewriting it, into Docker containers so it runs the same way on any server, deploys repeatably and can be moved or upgraded later. I find the hidden state old apps keep, such as local uploads, cron jobs and config files. From $650 ($500 founding), about 1–3 weeks.