System Requirements

WHMCS is compatible with most web server environments that use PHP and MySQL®. However, before you can install or update WHMCS, you must ensure that your setup meets the system requirements for your chosen version. For example, before you can upgrade from WHMCS 8.8 to WHMCS 8.9, you must ensure that your system meets all of the system requirements for WHMCS 8.9.

  • If you want to use the Automatic Updater, make sure that you meet our Automatic Updater requirements.
  • Read the release notes for each version carefully. Upgrading dependencies in the wrong order may cause serious issues.
  • Make sure to check the Marketplace listings for your custom modules. They may have additional requirements.

Supported Versions

We currently support the following versions of WHMCS:

WHMCS VersionCurrent TierRelease NotesAnticipated End-of-Life Date
WHMCS 8.10General Availability8.10 Release NotesApril 30, 2025
WHMCS 8.9Long-Term Support8.9 Release NotesJanuary 31, 2025
WHMCS 8.8Long-Term Support8.8 Release NotesAugust 31, 2024

These releases are in the Active Development stage of our development cycle. All prior versions have reached End-of-Life (EOL) and we no longer maintain them or release updates for them, regardless of the reason. If you currently use an EOL version of WHMCS, we recommend updating to a supported version as soon as possible.

For system requirements for updating from older End-of-Life (EOL) versions, see Updating Through EOL Versions.

System Requirements

To successfully run currently-supported versions of WHMCS, your system must meet the following requirements:

RequiredRecommended
Operating SystemLinux®N/A
Apache® Web ServerApache 2.xN/A
Apache ExtensionsN/Amod_rewrite
Apache Handler
(Learn More)
Any virtual host or server-wide handler.N/A
PHP Version
(Learn More)
PHP 7.2, 7.3, 7.4, or 8.1
ionCube Loader®10.2.0 (PHP 7.2)
10.3.1 (PHP 7.3)
10.4.3 (PHP 7.4)
12.0.1 (PHP 8.1)
N/A
PHP Extensions
(Learn More)
  • All default compiled extensions.
  • cURL 7.36 or higher with SSL
  • GD2 Image Library
  • IMAP
  • ionCube Loader (see below)
  • JSON
  • PDO
  • PDO_MySQL
  • Reflection
  • XML
  • BC Math
  • Fileinfo
  • GMP
  • iconv
  • Intl
  • mbstring
  • OpenSSL 1.0.1c or higher (with TLS 1.2 or higher)
  • SOAP
PHP Memory Limit64 MB128 MB
MySQL Version
(Learn More)
5.28.0
  • We strongly recommend using the latest available, stable releases of all software and extensions above.
  • Memory and disk space requirements vary depending upon the installation’s size and activity level.
  • The information above only contains requirements for our currently-supported versions. For system requirements for updating from older End-of-Life (EOL) versions, see Updating Through EOL Versions.

System Environment

WHMCS is designed for a traditional LAMP (Linux, Apache, MySQL, PHP) environment that uses the standard Linux file system and cron subsystem. We validate WHMCS to run in Linux based environments running the Apache web server. Other environments like Windows®-based configurations will experience compatibility issues that WHMCS Technical Support does not support.

  • Some WHMCS installations successfully use NGINX® instead of Apache, but we can only provide limited assistance with these systems.
  • If you must use something other than the supported LAMP environment, consult with your hosting provider or system administrator to evaluate your system’s viability and long-term needs.

Apache Handlers

You can choose to use virtual host handlers or server-wide handlers.

  • Virtual host handlers (for example, suPHP or mod_ruid2) execute the PHP process as a specific user based on the domain name.
  • Server-wide handlers (for example, CGI or mod_php) execute all PHP code as the same user.
When you select your PHP handler, make certain that no other applications on the server will execute as the same user as WHMCS.

Apache Directives

WHMCS uses configuration directives in the following .htaccess files:

  • The ~/.htaccess file contains the mod_rewrite directives that send routable paths through the index.php file. This allows the internal routing system to function and creates friendly URLs.
  • The ~/vendor/.htaccess file prevents directly serving files from the ~/vendor directory while allowing WHMCS to access its libraries.
For help to replicate this setup on an NGINX system, see Restrict NGINX Directory Access.

MySQL Database

WHMCS requires MySQL for successful database operation. However, binary-compatible alternatives like MariaDB® may also work for some installations.

WHMCS uses the PDO database API internally. We recommend that third-party developers interact with the database using the WHMCS API. For more information, see Interacting with the Database.

Database Privileges

For the installation process, WHMCS requires the following database privileges:

ALTER     DROP      LOCK TABLES
CREATE    INDEX     SELECT
DELETE    INSERT    UPDATE

For daily operations, you can restrict WHMCS’s database by removing the ALTER, CREATE, DROP, and INDEX privileges. WHMCS only requires these privileges for installations, updates, and activating or deactivating modules.

Encrypted Database Connections

We added this support in WHMCS 8.8.

Support for encrypted MySQL connections uses the following configuration variables in the configuration.php file. You can use the following variables:

  • db_tls_ca — The path to the CA .pem file (for example, /var/www/html/whmcs/ca.pem).
  • db_tls_ca_path — The path to the directory that contains the CA certificate files.
  • db_tls_cert — The path to the client’s certificate.
  • db_tls_cipher — A list of one or more ciphers to use for SSL encryption, in an OpenSSL-compatible format.
  • db_tls_key — The path to the client’s key.
  • db_tls_verify_cert — Disable (0) or enable (1) the server certificate.
    If you set db_tls_verify_cert to 1 (enabled), the db_host value in the configuration.php file must match the Common Name (CN) or be a Subject Alternative Name (SAN) of the certificate that you specify for db_tls_cert. If it does not match, you will see an error. For more information, see Could Not Connect Errors.

If you set db_tls_verify_cert to 1 (enabled), the db_host value in the configuration.php file must match the Common Name (CN) or be a Subject Alternative Name (SAN) of the certificate that you specify for db_tls_cert.

  • If the hostname does not match and db_tls_verify_cert is enabled, you will see a Could not connect to database error.
  • To resolve this issue, set db_tls_verify_cert to 0 or provide a new certificate with a CN or SAN that matches the db_host value.

You can configure these variables before, during, or after installation using the command-line installation method or after installation using the browser-based installation method.

PHP

Whenever possible, we recommend using a PHP version that is in active development or is receiving security fixes from upstream PHP maintainers.

  • Issues in your PHP configuration can cause serious problems or prevent you from using certain features. For example, you may see warnings if the PHP version that the system cron uses does not match the web server’s version.
  • Some features may have additional requirements. For example, the Automatic Updater requires specific PHP settings.

PHP Extensions

In addition to the extensions above, WHMCS requires the default compiled extensions (for example, PDO, mysqlnd, JSON, libxml, DOM, or Fileinfo).

  • If an extension that does not appear in the list is compiled by default in your version of PHP, do not disable it.
  • PCI compliance may require TLS 1.2.

File Permissions

The permissions settings that WHMCS requires depend on your exact system configuration. For example, we recommend the following permissions for a standard cPanel & WHM server:

  • configuration.php400
  • /crons/pipe.php755
  • All other PHP files — 644
  • All directories — 755

The file ownership and group should be the same as the user directory name. For example, on a cPanel & WHM server with a web root at /home/username/public_html/, username would own the files and the group would also use the name username.

The owner and group of the PHP process must be the same as the user directory name. For example, on a cPanel & WHM server with a web root at /home/username/public_html/, the PHP process owner and group would both be username.

For most WHMCS installations, we recommend the following permissions:

File or Directorychmod Permission
configuration.php400 (Readable)
/attachments777 (Writeable)
/downloads777 (Writeable)
/templates_c777 (Writeable)
All other files644 (Owner writeable, otherwise readable)
All other directories755 (Owner writeable, otherwise readable and executable)
  • This does not apply to installations using suPHP or phpSuExec.
  • If you use DSO as your PHP handler, you must use 644 permissions.

Last modified: June 14, 2024