How to Fix Joomla Installation JSON Support Errors

A JSON support error during a current Joomla installation points to a PHP/runtime mismatch rather than a Joomla setting you should bypass. Joomla 6.x lists json as a required PHP module, while PHP 8 makes JSON a core extension that is always enabled. Because Joomla 6.x requires PHP 8.3 or later, a genuine “JSON missing” result on a Joomla 6 installation usually means the web request is not using the PHP runtime you think it is, the server build is abnormal, or an older installer/environment is involved.

1. Confirm the Joomla and PHP versions actually serving the installer

Start with the exact installer message and verify the PHP version used by the website. Joomla 6.x currently requires PHP 8.3.0 or later in its supported range. Do not rely only on php -v over SSH: command-line PHP can differ from the PHP-FPM pool, CGI/FastCGI handler, or hosting-panel version assigned to the domain.

If the browser-facing runtime is older than expected, change the domain or virtual host to the intended PHP version, then reload the installer. On managed hosting, use the provider's PHP selector or ask support which PHP handler serves the domain.

2. Verify JSON from the web runtime

On PHP 8, JSON is a core extension and cannot normally be disabled. A temporary diagnostic page can verify that json_encode() exists or that extension_loaded('json') reports true. Use a diagnostic file only briefly and remove it afterward because PHP information pages can expose server details.

If PHP 8.3+ is definitely serving the site but JSON functions are unavailable, treat that as a broken or nonstandard PHP installation. Reinstall or repair the provider's PHP package rather than modifying Joomla to skip the requirement.

3. Check for mixed PHP handlers and stale service processes

A hosting control panel can display one PHP version while the virtual host still points to another handler. Likewise, changing a PHP package or configuration may require PHP-FPM or the web service to reload. Compare the web runtime's version and loaded configuration with the intended pool. If multiple domains or pools exist, make sure you are changing the one serving this Joomla hostname.

4. Separate JSON errors from malformed JSON responses

“JSON support is missing” is different from a browser or JavaScript error saying a response could not be parsed as JSON. A parse error can be caused by a PHP warning, HTML error page, proxy response, or other text being returned where JSON was expected. In that case, inspect the browser Network response and PHP/web-server logs; enabling a PHP module will not fix malformed output.

5. Do not install random legacy php-json packages on Joomla 6

Older Linux distributions sometimes packaged JSON separately for older PHP releases. That historical advice does not apply to the PHP 8 runtime required by Joomla 6. Installing a package for a different PHP branch can create a mixed environment without changing the PHP process that serves the site.

6. Retry only after the runtime is consistent

  1. Verify the browser-facing PHP version is supported by your Joomla release.
  2. Confirm JSON functions are available in that same web runtime.
  3. Correct the domain's PHP handler or repair the PHP installation if they are not.
  4. Reload/restart the relevant PHP service when required by your server.
  5. Reload the Joomla installer and confirm the requirement check passes.

If the error persists on a verified Joomla 6/PHP 8.3+ stack, capture the exact installer text and server/PHP logs. That evidence is more useful than attempting to bypass the check.


Need More Help with Joomla?

Still having trouble? Open a support ticket with QuantaCade Support and we'll be happy to help where we can.

Support priority is given to QuantaCade products, services, and customers. However, we're also happy to assist fellow Joomla users with general Joomla questions and troubleshooting when possible.

QuantaCade is an independent Joomla extension developer and is not official Joomla support. Some issues involving third-party extensions, hosting environments, server configurations, or other systems outside our development control may be beyond what we're able to resolve.

Open a Support Ticket