Blank page after activating ImpulseCore

WHMCS shows a blank page right after you click Activate on ImpulseCore. Almost always missing or wrong-version ionCube Loader — install it for your PHP version and restart PHP-FPM.

Last updated 20 days ago

Blank page after activating ImpulseCore

What you're seeing

You clicked Activate on ImpulseCore in System Settings → Addon Modules and WHMCS returned a blank page — no error message, no inline notice, just empty HTML. Refreshing the page either repeats the blank result or eventually shows a generic "site error" page.

Why it happens

ImpulseCore ships some files that are ionCube-encoded. PHP needs the matching ionCube Loader extension to execute them. If the loader is missing, or is the wrong version for the running PHP, PHP refuses to parse the file and dies before it can emit anything to the browser. WHMCS's error handler never gets a chance to render a friendly message.

This usually appears the first time Core is activated because that's the first time PHP tries to load Core's encoded files.

Fix

  1. Confirm ionCube isn't loaded for your PHP. From the WHMCS server shell:
    php -m | grep -i ionCube
    No output means the loader isn't enabled for whichever PHP your WHMCS uses. If you have multiple PHP versions installed, check the right one — for example:
    /opt/plesk/php/8.3/bin/php -m | grep -i ionCube
    Substitute your PHP CLI binary. On Plesk: /opt/plesk/php/8.3/bin/php. On cPanel: /opt/cpanel/ea-php83/root/usr/bin/php. On a vanilla LAMP install: /usr/bin/php or whatever which php returns.
  2. Install the loader for your PHP version.
    • Plesk: Tools & Settings → PHP Settings → click your PHP version → enable ionCube.
    • cPanel: WHM → Server Configuration → PHP Selector → enable ionCube (or via MultiPHP Manager, depending on cPanel version). EasyApache 4 → Customize → PHP Extensions → enable ioncube_loader works on older WHM builds.
    • Manual: Download the ionCube Loader matching your PHP version + OS from ioncube.com, drop the .so into the PHP extensions dir, add zend_extension=ioncube_loader.so to php.ini, restart PHP-FPM.
  3. Restart PHP-FPM. The loader is only registered on process start. PHP-FPM has to come up fresh:
    systemctl restart plesk-php83-fpm # Plesk systemctl restart cpanel-php83 # cPanel systemctl restart php8.3-fpm # vanilla LAMP (Debian/Ubuntu); adjust unit name for your distro
  4. Re-confirm ionCube is loaded. Run php -m | grep -i ionCube again. You should see one line listing the loader. The version number in php -v will also include an ionCube banner.
  5. Activate ImpulseCore. Go back to System Settings → Addon Modules and click Activate on ImpulseCore. The activate hook now runs cleanly — creates the mod_impulsecore_* tables, seeds defaults, self-registers.

How to confirm it worked

Open Addons → ImpulseCore in WHMCS admin. The Overview tab renders with the version number, an (empty) Modules-registered table, and the Audit log showing the activation event itself.

Why no error message?

PHP's behaviour when it can't parse an encoded file isn't a graceful exception — the parser bails before any of WHMCS's error handlers register. The "blank page" symptom is the same one you'd get from a syntax error in a bootstrap file. ionCube is the most common cause when the file in question is from an ionCube-encoded module.

Related