Requirements and Hosting

This content was generated with the assistance of AI and should be verified against the official Joomla documentation before being relied on in production.

This sub-section’s Joomla bibliography lists the reference material consulted while preparing these pages.

This page was written against Joomla 6.2 (the current release) with Joomla 5.4 (security fixes only) as the comparison point, and checked on 2026-10-30. Joomla 6 needs PHP 8.3 or later and recommends PHP 8.4. It runs on MySQL, MariaDB or PostgreSQL, on Apache, nginx or Microsoft IIS. This page explains how to read the official requirements table, lists each requirement with the PHP extensions and settings behind it, records where the official pages disagree, and then covers the kinds of hosting available and what each one gives a site such as the Tallpine Hiking Club.

It is written for site owners choosing a host and for administrators preparing a server. Running the installer is covered in Installation and the Public Folder, a laptop setup in Local Development with Docker, and the web server configuration in detail in Web Server, Reverse Proxy and HTTPS.

How to read the requirements table

The Joomla Developer Manual publishes one requirements table per release line. The 6.x table has three columns, and each column answers a different question:

  • Recommended is the version the project suggests for this release. New installations should use at least this version.

  • Supported is the lowest version for which the project accepts bug reports and considers fixes. It may not be enforced by the code.

  • Minimum is the lowest version that Joomla enforces. The installer refuses to continue (and an update refuses to run) below it.

Between Minimum and Supported lies a zone where Joomla may still work but nobody promises that it will; versions below the Supported column are the administrator’s own responsibility. The 5.x table has only two columns (Recommended and Minimum), where the minimum versions are described as guaranteed to work and older versions as unsupported. The practical rule is the same for both: plan to run the Recommended column, accept Supported only as a floor, and treat Minimum as a hard stop rather than a target.

flowchart LR A[Below Minimum] -->|installer or updater refuses| X[Blocked] B[Minimum up to Supported] -->|may work, no support| Y[At your own risk] C[Supported up to Recommended] -->|bugs considered| Z[Works, plan an upgrade] D[Recommended or later] --> W[Best choice for new sites]

Requirements at a glance

Component Joomla 6.x Recommended Joomla 6.x Supported / Minimum Joomla 5.x Recommended / Minimum

PHP

8.4

8.3.0 / 8.3.0

8.3 / 8.1.0

MySQL

8.4

8.0.13 / 8.0.13

8.1 / 8.0.13

MariaDB

12.0

10.6 / 10.4

11.1.0 / 10.4.0

PostgreSQL

17.6

14.0 / 12.0

16.0 / 12.0

Apache

2.4

2.4

2.4 / 2.4

nginx

1.29

1.26

1.25 / 1.21

Microsoft IIS

10

10

10 / 10

Joomla 4.x reached end of life in October 2025 and Joomla 3.x before it, so neither is listed. Older books and tutorials such as Joomla! 4 Masterclass (2023) and Developing Extensions for Joomla! 5 (2023) describe an end-of-life or security-only platform and, in the second case, Joomla 4-era database minimums; take the numbers from the table above.

Joomla’s backward-compatibility policy raises minimum requirements only in the first release of a major version. A 6.x minor therefore never raises the PHP minimum, but Joomla 7.0 will. Downgrades, and migrating a site between MySQL-family and PostgreSQL databases, are not supported.

PHP

Joomla 6 requires PHP 8.3.0 or later and recommends PHP 8.4. Joomla 5 requires PHP 8.1.0 and recommends 8.3. Two consequences follow:

  • A site on Joomla 5 running PHP 8.1 or 8.2 cannot be upgraded to Joomla 6 until the host moves it to PHP 8.3 or later. Change the PHP version first, confirm that the site and every extension still work on Joomla 5.4, and only then start the upgrade (see Upgrading Joomla 5 to 6).

  • Pick a PHP release that still receives security fixes from the PHP project. The Joomla table is a floor set by the Joomla code, not a promise that every PHP release it allows is still patched upstream.

Both tables list the same extensions:

Extension Why Joomla needs it

json

Reads and writes JSON for the Web Services API, the Web Asset Manager registries and configuration.

simplexml

Parses extension manifests, update server files and form definitions.

dom

Used by the installer, the HTML filter and several libraries.

zlib

Unpacks extension and update archives and compresses output.

gd

Resizes images in the Media Manager.

mysqlnd, pdo_mysql or pdo_pgsql

One database driver: mysqlnd for the MySQLi driver, pdo_mysql for the MySQL PDO driver, pdo_pgsql for PostgreSQL.

mbstring (recommended)

Correct handling of multibyte text, which the German version of the Tallpine site relies on.

Check what a server really loads, because the web server and the command line often use different PHP configurations:

# CLI view of the loaded extensions (may differ from the web view)
php -m | grep -Ei '^(json|SimpleXML|dom|zlib|gd|mysqlnd|pdo_mysql|pdo_pgsql|mbstring)$'

# Which configuration files are read
php --ini

For the web view, place a temporary file that prints phpinfo() only on a protected staging host and delete it afterwards; a public phpinfo() page leaks paths, versions and environment values.

memory_limit and other PHP settings

The Manual recommends a PHP memory_limit of at least 256MB. The installer and updates can run with less, but unpacking a core update, resizing large photographs for a trail report, or running Smart Search indexing is where a small limit shows up as a blank page or a "Allowed memory size exhausted" error. Related settings that matter in practice:

; php.ini (or a per-site .user.ini / pool file)
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 40M
max_execution_time = 60
; production: log errors, do not display them
display_errors = Off
log_errors = On

post_max_size must be at least as large as upload_max_filesize, otherwise uploads fail with no useful message. The Media Manager also has its own upload limit in its component options, and the smaller of the two applies. See the PHP configuration and extensions page for how PHP reads its configuration files and for OPcache.

Databases

Joomla supports MySQL, MariaDB and PostgreSQL. Microsoft SQL Server has not been supported since Joomla 4.0, and a few very old tutorials still mention it. SQLite is not a supported Joomla database.

MySQL

MySQL 8.0.13 is both the supported and the minimum version for Joomla 6 and Joomla 5; MySQL 8.4 is the 6.x recommendation. Joomla uses the utf8mb4 character set, so tables and the connection must use it.

MariaDB: the 10.4 versus 10.6 discrepancy

For MariaDB, the sources do not agree for Joomla 6. The Developer Manual’s technical requirements page lists MariaDB 12.0 as recommended, 10.6 as supported and 10.4 as the enforced minimum. The Joomla 5 to 6 upgrade guide gives 10.6 as the requirement. Both can be true at once: 10.4 is the number the code checks, while 10.6 is the oldest version the project will fix bugs for. For a new site the question does not arise, because both numbers are far below any MariaDB release that still receives upstream security fixes. For an existing site on MariaDB 10.4 or 10.5, plan the database upgrade before the Joomla 6 upgrade and treat 10.6 as the target.

PostgreSQL: the 12 versus 14 discrepancy

The same split applies to PostgreSQL. The Manual lists PostgreSQL 17.6 as recommended, 14.0 as supported and 12.0 as the minimum; the upgrade guide gives 14. Use 14 as the floor for a site that is being upgraded and the recommended release for a new one. PostgreSQL major versions are not upgraded in place by a package update, so schedule a dump and restore or pg_upgrade separately.

The install and update SQL of an extension must exist in both MySQL and PostgreSQL variants if the extension supports both; the query builder does not make raw SQL portable (see Installer Scripts and SQL Updates).

Web servers

Server What Joomla needs

Apache

Version 2.4. mod_rewrite is optional, but it is needed for search-engine-friendly URLs without index.php in them; rename the shipped htaccess.txt to .htaccess and allow overrides (AllowOverride All) for the site directory.

nginx

Version 1.26 supported (1.29 recommended) for Joomla 6; 1.21 minimum for Joomla 5. nginx has no .htaccess, so the rewrite rule is written in the server block.

Microsoft IIS

Version 10, with the URL Rewrite Module for friendly URLs. The web.config.txt file shipped with Joomla is the starting point.

A minimal Apache virtual host for the Tallpine site:

<VirtualHost *:443>
    ServerName www.tallpine.example
    DocumentRoot /var/www/tallpine
    <Directory /var/www/tallpine>
        AllowOverride All
        Require all granted
    </Directory>
    # certificate directives omitted
</VirtualHost>

On nginx, the same friendly-URL behaviour is a try_files fallback to index.php plus a FastCGI block:

server {
    listen 443 ssl;
    server_name www.tallpine.example;
    root /var/www/tallpine;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    }
}

Nginx does not execute a .htaccess file, so the hardening rules that Apache users get from it (blocking direct access to configuration files, for example) have to be repeated in the server block. That is covered in configuration.php and .htaccess. Whichever server is used, serve the site over HTTPS; behind a reverse proxy or CDN, Joomla must be told that the original request was secure.

Hosting types and what each needs

The Joomla! User Guide’s "Hosting and Installation" page groups the ways to get a Joomla site online. A site needs two things: a domain name and web space.

Option Notes for the Tallpine Hiking Club

Joomla’s free hosting service

Intended for beginners, tests and simple sites. A club can start here and move later.

Shared hosting with a control panel (cPanel, Plesk, ISPConfig)

Cheapest production option. The panel lets you pick the PHP version, edit PHP settings, create the database and upload files. The host controls PHP extensions, memory_limit and the web server configuration.

Auto installer (one-click installs)

Convenient, but the host may install an outdated release and tie updates to its own tooling. The User Guide says experts generally advise against it.

A subfolder copy

A second Joomla in a subfolder, useful to test a new version without touching the live site.

Local setup

Joomla on a laptop or a small server such as a Raspberry Pi, for development.

The User Guide page does not list requirements. Beyond it, a virtual private server or a container platform gives full control over PHP, the web server and scheduled jobs at the cost of maintaining the system yourself, and is the right choice once a site needs a reverse proxy, Redis, several PHP versions or automated deployment. For containers see Docker Compose for local development and the WordPress requirements page for the equivalent hosting comparison.

What shared hosting needs to offer

Before buying shared hosting for Joomla 6, check that the hosting package provides:

  • PHP 8.3 or later, selectable per site, with the extensions in the table above

  • a MySQL 8.0.13+, MariaDB 10.6+ or PostgreSQL 14+ database

  • a memory_limit of 256M or more and an upload limit that fits your media

  • Apache with mod_rewrite and AllowOverride (or nginx with a friendly-URL rule)

  • HTTPS with a certificate that renews itself

  • cron or a scheduler, so Joomla’s Scheduled Tasks can run (see Scheduled Tasks)

  • SSH or at least SFTP, and a way to take backups (Joomla has no core backup; see Backups and Recovery)

  • a publicly reachable site, if Automated Core Updates are wanted (see Updating Joomla and Automated Core Updates)

Common errors and pitfalls

  • Installer stops at pre-installation check: a red entry means the PHP version, a missing extension or a database driver is below the minimum; fix the server, not Joomla.

  • Command line and web PHP differ: php -v shows 8.4 while the site runs 8.1, because the host maps the site to a different PHP. Check the version the web server uses.

  • Friendly URLs give 404: mod_rewrite is off, AllowOverride is None, htaccess.txt was never renamed, or the nginx try_files rule is missing.

  • Blank page after an update: memory or execution time too low; read the PHP error log.

  • Upgrading to Joomla 6 on PHP 8.2: blocked by the minimum; raise PHP first.

Security notes

Run a PHP version that still gets upstream security fixes, keep the database server patched, keep display_errors off in production, never leave phpinfo() files or installer folders on the server, and keep configuration.php outside version control (database credentials and the Joomla secret come from the environment or a deployment secret store). Hardening is covered in Security Hardening, MFA and Passkeys.

Where older material is outdated