ezone
  • Home
  • Blog
    • Cloud ERP
  • Flutter
    • FlutterFlow
  • Joomla
  • About

Joomla® — The Flexible Platform Empowering Website Creators

Joomla! is an award-winning content management system (CMS), which enables you to build web sites and powerful online applications.

Multizone have been building websites and content management solutions with Joomla since its inception in 2005 and love it. it may not have the market share of some of the competition, but it is award-winning, free and open-source. 

Joomla! has a global community of developers and volunteers, who make sure the platform is user friendly, extendable, multilingual, accessible, responsive, search engine optimized and more.

How to get started with Joomla!

Joomla! is free, open, and available to anyone under the GPL. If you are unfamiliar with this license, you might want to read the GNU General Public License FAQ. Read Getting Started with Joomla! to find out the basics.

If you're ready to install Joomla! by yourself ou can download the latest version of Joomla! and you'll be up and running in no time.

If you need help implementing Joomla! do feel free to contact us.

Joomla tech notes and demos

PHP 8.5 Switched display_errors Back On. Here's Why

PHP 8.5 Switched display_errors Back On. Here's Why

A PHP version bump in cPanel quietly switched display_errors back on for a live Joomla site, even though every config file I could see said it was off. Here's what happened and how to stop it happening to you.

The symptom

After moving the site to PHP 8.5 in cPanel's PHP Selector, PHP warnings and deprecation notices started appearing in the browser. That's bad: it leaks file paths and internals to visitors, and it looks awful.

The odd part was that nothing had been changed to turn errors on. The .user.ini and php.ini in the web root both contained display_errors = Off, and Joomla's own Error Reporting setting was set to None.

The gotcha

On CloudLinux hosting, PHP Selector doesn't use the php.ini or .user.ini in your web root at all. Each PHP version loads its own global php.ini plus a small per-account options file, and that's it.

The 8.5 build on my host has no display_errors line in its global php.ini. When the directive is missing, PHP falls back to its compiled-in default, which is On. Any override you had set in the Options tab for the previous version doesn't carry across, because those options are stored per version. So the moment the version changed, errors went live.

Don't trust the files you can see. Run a quick probe and check what the web server's PHP is actually using:
<?php
header('Content-Type: text/plain');
echo 'display_errors=', var_export(ini_get('display_errors'), true), "\n";
echo 'loaded=', php_ini_loaded_file(), "\n";
echo 'scanned=', php_ini_scanned_files(), "\n";

Drop that in the web root, load it in a browser, then delete it. The loaded and scanned lines tell you which ini files are really in play. In my case neither was in the web root.

The fix

Two places, and I'd suggest you do both.

  1. PHP Selector, Options tab. Set display_errors to Off and log_errors to On for the version you're running. Remember to do it again whenever you change version.
  2. .htaccess in the web root. LiteSpeed honours php_flag and php_value, and this survives a version switch:
php_flag display_errors Off
php_flag display_startup_errors Off
php_flag log_errors On
php_value error_log /home/youraccount/public_html/error_log

Re-run the probe afterwards to confirm, then remove it.

Takeaway

Changing PHP version on a PHP Selector host resets more than you'd expect. After any switch, check the effective values rather than the config files, and keep a belt-and-braces override in .htaccess so the next upgrade can't surprise you.

Details
Last Updated: 16 October 2026
What a Joomla developer learned modernising a WordPress site

What a Joomla developer learned modernising a WordPress site

I build and maintain Joomla sites. Earlier this year I took on the migration of a members' organisation's WordPress site: old hosting, an ageing PHP version, and a custom theme written in 2012 that nobody had touched in a decade. It is live now, on current WordPress and PHP, and the whole thing took days rather than weeks.

TL;DR – What surprised me was where the difficulty actually sat. I was never unclear about what I wanted. I could describe every outcome precisely. What I could not do was name the thing I was looking for, or guess where WordPress had put it. That gap turned out to be the whole job.

Details
Last Updated: 03 September 2026

Read more: What a Joomla developer learned modernising a WordPress site

Rotating the root of trust — break-glass key rotation for a Joomla licensing system

Rotating the root of trust — break-glass key rotation

If you sign your extension’s subscription-validation responses with an RSA key, that private key is the root of trust for every copy you’ve ever shipped. So what do you do when it might have been exfiltrated? You can’t just mint a new one and swap it in — the instant you do, every customer’s extension rejects the new signature and in our case drops to the free tier limiting functionality they paid to subscribe to.

TL:DR – This is how I rotated a possibly-compromised signing key across a live Joomla subscription system without breaking the field, plus the one design idea that made it safe.

Details
Last Updated: 14 September 2026

Read more: Rotating the root of trust — break-glass key rotation

Joomla front-end starts returning 500 errors

Joomla front-end starts returning 500 errors

Your Joomla front-end starts returning 500 errors on every page. Admin still loads. Joomla’s own error log is empty. If that’s where you are right now, and you run the JCE editor, read this before you do anything else — you may be looking at the 2026 JCE profile-import remote code execution chain, and the fix is methodical rather than complicated.

If you run JCE editor below version 2.9.99.6, you are vulnerable. Patch first, investigate second. Download the current release from joomlacontenteditor.net/downloads and install via Extensions → Install → Upload Package File. The rest of this article assumes you’ve patched.

TL:DR – This is a write-up of a real incident response on a production Joomla 6.1.1 site in June 2026. Names, paths and database prefixes are anonymised; the technical details are exactly as encountered. If your symptoms match, the playbook below will get you out cleanly.

Details
Last Updated: 29 July 2026

Read more: Joomla front-end starts returning 500 errors

Building Subscriptions Manager: An Iterative Development Story

Building Subscriptions Manager: An Iterative Development

Multizone Subscriptions Manager is a Joomla extension package that provides subscription key management for extension developers. Built and shipped to production in a matter of months, it stands in 2026 as a concrete example of what disciplined iterative development looks like when strong product management, clearly defined technical constraints, and AI-assisted tooling work together — enabling a solo developer or small team to deliver a production-grade, cryptographically secure commercial platform without cutting corners or accumulating the kind of technical debt that haunts hastily assembled AI-generated software.

TL:DR – This isn't vibe coding. This is professional product management with help from AI.

Details
Last Updated: 07 September 2026

Read more: Building Subscriptions Manager: An Iterative Development

Page 1 of 11

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Popular articles about Joomla

  • Using the Joomla Command-Line Interface (CLI)
  • Module positions in the Cassiopeia template for Joomla
  • Installing Joomla 5 on Ubuntu Desktop 24.04 LTS
  • Roboto font is installed with Joomla
  • A responsive banner for topbar in Cassiopeia for Joomla
  • Scalable Vector Graphics in Joomla
  • Adding external News Feeds to your Joomla 4 site
  • Creating a plugin for Joomla
  • Using Xdebug to improve PHP development with Joomla!
  • socialcards - a twitter meta data plugin for Joomla
  • Joomla shipped with Bootstrap 5.0
  • Reset Hits in Joomla
  • Ridiculously Responsive Social Sharing Buttons for Joomla
  • Easily Add Google AdSense to Your Joomla Site
  • Enhancing Joomla CMS Site Security with SSH Keys
Add as a preferred source on Google

Recent articles

  • Building for One, Part fourteen: four rejections, and Apple were right every time
  • PHP 8.5 Switched display_errors Back On. Here's Why
  • Building for One, Part thirteen: the rejection that made it better
  • Building for One, Part twelve: Joomla as the household's front door
  • Building for One, Part eleven: two days between finished and in review
  • Building for One, Part ten: the chime that follows her out of the app
My Blog
  • Terms of use
  • Privacy statement
  • Contact us
  • Sitemap
  • Joomla! — award-winning content management system (CMS)
  • Flutter — An open source framework for building applications from a single codebase