Joomla 4.1.x on Ubuntu 22.04 LTS with Php 8.1 (whew)

Running Joomla on Ubuntu in 2026: What's Changed and What Still Applies

If you're setting up or maintaining a Joomla server on Ubuntu in 2026, the landscape has shifted considerably since the early 4.x days. Joomla 6.x is now the current stable branch, Ubuntu 24.04 LTS is the recommended long-term support release, and PHP 8.3 is the version you should be targeting. That said, the core workflow for getting Joomla running on a local Ubuntu LAMP stack remains recognisable — it's mostly a matter of knowing which version numbers to substitute and which old assumptions to discard.

TL:DR – The notes below were originally written when Ubuntu 22.04 LTS shipped with PHP 8.1 by default and Joomla 4.1.3 was the current release. That combination caused some friction for anyone upgrading from an older setup — white screens, missing PHP extensions, and a Joomla version that predated PHP 8.1 support. The troubleshooting logic is still sound, so rather than discard it, this article has been updated to reflect where things stand now.

The current stack in 2026

Ubuntu 24.04 LTS (Noble Numbat) ships with PHP 8.3 as its default PHP version. Joomla 5.x requires PHP 8.1 as a minimum and fully supports PHP 8.3, so there is no longer any tension between what Ubuntu provides out of the box and what Joomla expects. If you are starting fresh, install Ubuntu 24.04 LTS, pull in PHP 8.3 and its extensions, and install Joomla 5.x — the combination works cleanly without reaching for third-party PPAs or manual version pinning.

Joomla 4.x entered its end-of-life window in 2025. Security patches were extended for a period to give sites time to migrate, but running Joomla 4.x in production in 2026 is not recommended. The upgrade path from Joomla 4.x to 5.x is handled through the Joomla Update component in the administrator panel, provided your extensions are compatible — check the Joomla Extension Directory for 5.x-compatible versions of anything you rely on before committing to the upgrade.

PHP 8.1 itself reached its official end of life in late 2024. Ubuntu 22.04 LTS still receives security maintenance from Canonical through its extended support programme, but if you are on 22.04 with PHP 8.1 for a production Joomla site, migrating to 24.04 LTS with PHP 8.3 should be on your near-term roadmap.

PHP extensions: the list that still trips people up

Whether you are on PHP 8.1 or 8.3, the extension requirements for Joomla are broadly the same. A fresh PHP install from the Ubuntu repositories will not include everything Joomla needs, and the symptom of missing extensions is often a white screen or a vague server error rather than a helpful message. For PHP 8.3 on Ubuntu 24.04, the install command follows the same pattern as before:

sudo apt install php8.3-gd php8.3-intl php8.3-mbstring php8.3-mysqli php8.3-mysqlnd php8.3-tidy php8.3-xml php8.3-zip php8.3-curl

Note that xmlreader and xmlwriter are bundled into the php8.3-xml package in more recent releases, so you no longer need to install them as separate packages. The xmlrpc extension was moved out of the PHP core some time ago and is now available as a PECL package if you specifically need it — most Joomla installations do not.

After installing extensions, restart Apache to pick them up:

sudo systemctl restart apache2

You can verify what is loaded with php -m from the terminal, or check the Joomla System Information panel under Administrator → System → System Information, which will flag any missing or recommended extensions directly.

The Apache PHP module and multiple PHP versions

One situation that still catches people out in 2026 is having multiple PHP versions installed simultaneously. If you have upgraded Ubuntu in place rather than doing a clean install, you may have PHP 7.4, 8.1, and 8.3 all present on the system, with Apache still pointing at an older one. Check which version Apache is actually using:

php -v
apache2ctl -M | grep php

If the active PHP module does not match the version you have configured extensions for, switch it explicitly:

sudo a2dismod php8.1
sudo a2enmod php8.3
sudo systemctl restart apache2

This was the hidden cause of several white-screen problems in the original 22.04 upgrade scenario, and it remains the first thing worth checking when a Joomla installation misbehaves after any system update.

Joomla 5.x and the Cassiopeia template

Cassiopeia remains the default front-end template in Joomla 5.x, carried forward and refined from Joomla 4. The administrator template has been updated — Joomla 5 ships with Atum as the default backend template, with improved accessibility and a cleaner interface compared to earlier iterations. If you built customisations on top of Cassiopeia in Joomla 4, they should migrate without major issues, though it is worth testing in a staging environment before pushing changes to production.

Joomla 5 also introduced a more structured approach to the update and extension management workflow, making it easier to identify incompatible extensions before running an upgrade. The pre-update checker in the Update component has become meaningfully more useful and is worth running well in advance of any major version jump.

Original reference notes: Joomla 4.1.3 on Ubuntu 22.04 LTS with PHP 8.1

The following section preserves the original troubleshooting notes for anyone still working with the 22.04 / PHP 8.1 / Joomla 4.x combination, or who wants to understand the historical context.

After upgrading to Ubuntu 22.04 LTS, a Joomla server running on localhost displayed a white screen. White screens in Joomla frequently point to PHP issues, and in this case the culprit was the transition from PHP 7.4 to PHP 8.1 — the default PHP version in Ubuntu 22.04. Joomla support for PHP 8.1 was added in Joomla 4.0.5, but an installation that had not been kept current would still be running a version that predated that support.

PHP 8.1 as part of Ubuntu 22.04

PHP 8.1 was included in the Ubuntu 22.04 main repositories, meaning no third-party PPA was required. If it was not installed, it could be added with sudo apt install php8.1. Installations that had previously used a PPA for PHP 7.4 would find both versions present after the distribution upgrade, with Apache potentially still loading the older one.

PHP extension gaps after the upgrade

The default PHP 8.1 package did not carry over all extensions from the previous PHP 7.4 setup. The extensions needed for Joomla were installed with:

sudo apt install php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysqli php8.1-mysqlnd php8.1-tidy php8.1-xmlreader php8.1-xmlrpc php8.1-zip

After installation, the /etc/php/8.1/mods-available directory looked closely comparable to the PHP 7.4 equivalent, confirming the extensions were in place. Joomla still did not load at this point — the second part of the fix was needed.

Updating Joomla itself to a PHP 8.1-compatible version

The Joomla installation in question was old enough that it predated PHP 8.1 support. An incremental update package was downloaded from the Joomla downloads page and extracted over the existing installation. After that, Joomla 4.1.3 loaded correctly — fast, stable, and fully compatible with the updated system stack.

Screenshot of Cassiopeia — the default template for Joomla 4
Joomla 4.1.3 with the Cassiopeia default template, running on Ubuntu 22.04 LTS — the starting point for the upgrade path that leads to Joomla 5.x today.