Skip to content
Shahid Malla

WHMCS System Requirements: PHP, ionCube and MySQL Versions

The WHMCS PHP, ionCube Loader and MySQL versions for 9.1, 9.0 and 8.13, read on the official docs on 12 October 2026, plus the System Health checks and what to confirm before an upgrade or a server move.

· Published · 8 min read
On this page (9 sections)

WHMCS system requirements, as docs.whmcs.com listed them when I read the pages on 12 October 2026: Linux with Apache 2.x, PHP 8.2 or 8.3 for WHMCS 9.0, ionCube Loader 13.0.2 or higher on PHP 8.2 or 14.4.0 or higher on PHP 8.3, MySQL with 8.x recommended, and a PHP memory limit of 64 MB (128 MB recommended). The 9.1 beta needs ionCube Loader 15.0.0 and adds PHP 8.4.

What are the WHMCS system requirements?

The current list is a LAMP stack plus ionCube Loader. This is the table on the WHMCS 9.0 System Requirements page, which was last modified on 4 August 2026 when I read it. It applies to self-hosted installs only. WHMCS Cloud handles the server for you.

ComponentRequiredRecommended
Operating systemLinuxNone listed
Web serverApache 2.x, any virtual host or server-wide PHP handlermod_rewrite
PHP8.2 or 8.3None listed
ionCube Loader13.0.2 or higher on PHP 8.2, 14.4.0 or higher on PHP 8.3None listed
PHP memory limit64 MB128 MB
MySQL5.28.x
Required PHP extensionsDefault compiled extensions, cURL 7.36 or higher with SSL, GD2, IMAP, ionCube Loader, JSON, PDO, PDO_MySQL built with mysqlnd, Reflection, XMLBC Math, Fileinfo, GMP, iconv, Intl, mbstring, OpenSSL 1.0.1c or higher with TLS 1.2 or higher, SOAP
Database collationNone listedutf8_unicode_ci

WHMCS gives no CPU, RAM or disk figures. The page says memory and disk needs vary with the size and activity of the install. Nginx works on some installs, but WHMCS only offers limited help with it, and Windows is not supported.

Which PHP version does WHMCS support?

It depends on the WHMCS version. Three versions were supported on 12 October 2026, and each release note lists its own minimum and recommended versions:

WHMCS version and tierPHPionCube LoaderMySQL (minimum, recommended)Anticipated end of life
9.1, Beta8.2 minimum, 8.4 recommended15.0.05.2, 8.030 September 2027
9.0, General Availability8.2 or 8.313.0.2 on PHP 8.2, 14.4.0 on PHP 8.35.2, 8.031 December 2026
8.13, Long-Term Support7.2, 7.3, 7.4, 8.1, 8.2 or 8.310.2.0 on 7.2, 10.3.1 on 7.3, 10.4.3 on 7.4, 12.0.1 on 8.1, 13.0.2 on 8.2, 14.4.0 on 8.35.2, 8.0Not yet set

The order of upgrades matters more than the numbers. The 9.1 release notes say to install ionCube Loader 15.0.0 before updating to 9.1, and to update to 9.1 before moving to PHP 8.4. The 8.13 notes say the same about PHP 8.3: WHMCS first, then PHP. Updates also only appear at Utilities > Update WHMCS when the server runs a compatible PHP version.

One inconsistency: on the day I read them, the 9.1 System Requirements page still showed the 9.0 table, while the 9.1 release notes asked for ionCube Loader 15.0.0 and added PHP 8.4. For a 9.1 install I follow the release notes, because they are version specific. Recheck both before you act.

Which ionCube Loader version does WHMCS need?

You need the loader that matches both your PHP version and your WHMCS version, as in the table above. WHMCS ships its code encoded, and ionCube Loader is the PHP extension that decodes it. WHMCS Support does not help with loader problems; the documentation sends you to ionCube.

  • Check it. PHP Info should show an Additional Modules section with ionCube Loader in it. WHMCS shows PHP Info at Utilities > System > PHP Info.
  • Install it on cPanel and WHM. In WHM, open EasyApache, find the ioncubeXX package for your PHP version in the PHP Extensions list and finish the build. The documented command line equivalent, as root, is yum install ea-phpYY-php-ioncubeXX.
  • Without root. You cannot install it yourself. Ask the host.

Third-party modules are the usual surprise. Utilities > System > PHP Version Compatibility scans the install for ionCube-encoded files and reports which PHP versions can decode each one. It skips /vendor, /attachments, /downloads and the template cache. It only checks decoding, not PHP syntax, and a file listed under Encoding Compatibility Unknown means you ask the vendor. The PHP Version Compatibility page explains the report.

Which MySQL version does WHMCS need, and does MariaDB work?

The tables list MySQL 5.2 as the minimum and MySQL 8 as the recommendation. MariaDB is described as a binary-compatible alternative that "may also work for some installations", which is not the same as supported. Three database details cause more trouble than the version:

  • Strict mode. WHMCS does not support STRICT_TRANS_TABLES or ERROR_FOR_DIVISION_BY_ZERO. The documented fix is an empty sql_mode= line in the MySQL configuration (/etc/my.cnf on cPanel servers) and a MySQL restart. It needs root.
  • Privileges. Installing needs ALTER, CREATE, DROP, INDEX, LOCK TABLES, SELECT, INSERT, UPDATE and DELETE. You can remove the first four for daily running, but updates and module activation need them back.
  • The driver. PDO_MySQL must be built with mysqlnd, not libmysqlclient. On CloudLinux, System Health asks for nd_pdo_mysql instead of pdo_mysql.

Which PHP settings does WHMCS check?

Beyond the extensions, a handful of settings decide whether WHMCS and its Automatic Updater work. The updater figures come from Updating WHMCS.

SettingWhat WHMCS asks for
memory_limit64 MB minimum, 128 MB recommended and required by the Automatic Updater
max_execution_time60 seconds or more for the Automatic Updater
allow_url_fopenEnabled for the Automatic Updater
open_basedirDisabled, or including the whole WHMCS root, /dev/null and any directories you moved out of it
Zip extension or proc_openOne of them enabled, plus 250 MB of free disk, for the Automatic Updater
session.auto_startOff, or admin and client logins are not kept
disable_functionsMust not list any function WHMCS requires
OPcacheOff. WHMCS strongly discourages it because of stale cached data

The cron matters too. If the command line PHP that runs crons/cron.php is a different version or timezone from the web PHP, WHMCS warns about it. My WHMCS cron guide shows how to compare the two.

What does the WHMCS System Health page check?

System Health, at Configuration > System Health, compares the running server with what WHMCS expects and lists anything off as a Warning or as Needing Attention. These are the checks that relate to requirements, from the System Health page:

CheckWhat it flags
PHP VersionPHP is not compatible with the installed WHMCS version
Required and Recommended PHP Extensions, Required PHP FunctionsMissing extensions, or functions blocked by disable_functions
PHP Memory LimitBelow the recommended value (Warning) or the minimum (Needing Attention)
MySQL Server Configuration Checkconnect_timeout under 10, wait_timeout or interactive_timeout under 300, max_allowed_packet under 4 MB
OPcache StatusOPcache is enabled
Cron PHP Version Mismatch, Cron PHP TimezoneThe cron and the web server use different PHP versions or timezones. The version check clears only after the next daily cron run
cURL/TLS/OpenSSL, SSL Support in cURLcURL older than 7.36.0, OpenSSL older than 1.0.1c, or no SSL in cURL
Automatic Update RequirementsThe server fails one of the updater requirements
Legacy Smarty Tags, Deprecated ModulesTemplates or modules that WHMCS 9.0 no longer supports

I read System Health before any change and again after it. A clean page is not proof that third-party modules work, because it does not test them.

What should you check before a WHMCS upgrade?

Check that the server meets the requirements of the version you are going to, and of every version in between. The Updating Through EOL Versions page says you may have to stop between versions to update the server.

  1. Read the release notes of the target version, including the upgrade requirements table.
  2. Install the ionCube Loader the target needs, before the WHMCS update.
  3. Run Utilities > System > PHP Version Compatibility and ask each module vendor about the target PHP version.
  4. For 9.0 and later, run the Smarty Compatibility Report under Reports > Reports and remove legacy Smarty tags.
  5. Back up the database and files, and run the update on a test copy first.
  6. Update WHMCS, then PHP, in the order the release notes give.
  7. Watch System Health for the 24 hours after the update, as WHMCS recommends.

A worked example from these tables: an install on 8.12 with PHP 8.1 cannot go straight to 9.0, which needs PHP 8.2. 8.13 runs on PHP 8.1, 8.2 and 8.3, so the path is 8.13 first, then PHP 8.2 or 8.3 with the matching loader, then 9.0. My WHMCS upgrade guide covers the update itself.

What should you check before moving WHMCS to a new server?

The new server must meet the requirements of the WHMCS version you already run, not just the latest one. The official move checklist puts the requirements check third, after disabling the old cron and taking a database backup. On the new server I confirm:

  • The same PHP version as the old server, or one the installed WHMCS supports, with its matching ionCube Loader.
  • Every module still decodes on that PHP, checked with the compatibility report on a test copy.
  • Strict mode is off, the collation is right and the MySQL timeouts pass the System Health check.
  • The cron runs the same PHP as the website.
  • Custom paths in configuration.php, such as $attachments_dir, $templates_compiledir and $crons_dir, match the new directory layout.

The license must also be reissued for the new location. The rest of the move is in how to migrate WHMCS.

What do the WHMCS requirements not tell you?

They tell you what WHMCS needs, not whether your setup will behave. The gaps I plan around:

  • Sizing. No CPU or RAM guidance exists, so size from your own load and resize from measurements.
  • Shared hosting. Without root you cannot install ionCube, change sql_mode or turn off OPcache server-wide. Confirm the host will do it before you buy.
  • MariaDB and Nginx. Both run on real installs, but neither is fully supported, so problems there are yours to solve.
  • Modules. Marketplace and custom modules can have their own requirements. A module that only decodes on an older PHP blocks the whole upgrade.
  • Dates. Supported versions and end-of-life dates change every few months. Treat the tables here as a snapshot of 12 October 2026.

If a module or a customization is what stands between you and a supported version, that is the kind of work I take on under WHMCS support and maintenance or as part of a WHMCS migration.

Last reviewed 12 October 2026. Disclosure: I sell WHMCS and web development work, so I am not neutral. I am CTO at ElySpace, a freelance developer for Marmaids LLC, and founder of WHMCSPilot and MagizAI.

Share this article

Shahid Malla

Written by

Shahid Malla

Freelance WHMCS developer and web designer with 13+ years of client work. CTO at ElySpace, freelance developer for Marmaids LLC, and founder of WHMCSPilot and MagizAI.

Got a project like this?

Tell me what you need and I will send a written quote within one business day.