Skip to content
EnterraHost
Products
Tools
Hosting Email Support Client Area Find a domain

Turn on the IonCube loader for encoded PHP applications

Some commercial PHP software is distributed encoded rather than as readable source. The files are not plain PHP, and PHP cannot run them until an extension called the IonCube loader is present to decode them as they load.

If you upload software and every page returns a blank screen or a message naming IonCube, this is the setting it is asking for, and the error is usually more useful than it looks.

Turning on the IonCube loader

Open Advanced, then IonCube loader. One toggle.

Leave it off until you need it. A site that runs ordinary PHP does not benefit from the loader being present, and the setting only matters to software that was encrypted with it.

Commercial platforms and paid plugins are the usual reason to switch it on. Some control panels and billing systems, and a number of WordPress plugins sold under a licence, ship encoded files and will not start without it.

The one restriction

The panel warns that the loader cannot be enabled on sites using PHP 8.0. If you need IonCube and the site is currently on 8.0, move it to another version first. The PHP version article covers the selector and the restart, and 8.4 is the sensible destination.

Everything else works as you would expect. The loader does not change how your site behaves once it is on, it only makes encoded files loadable.

Recognising the error

The message varies by application, and the common ones are worth knowing because they look like different problems.

A page that is completely blank, with no error at all, is the least helpful version and the most common. PHP has stopped at a file it cannot decode and the application has no chance to explain. Checking the panel's own error log is the way to confirm, because a fatal recorded there will name the file and say the loader is required.

A line naming IonCube, or one about an encoded file that "cannot be decoded", is the same fault stated plainly. Both mean the toggle is off or the PHP version rule is being hit.

After turning it on

Restart PHP from the same page. The extension is read when the PHP process starts, so an enabled toggle without a restart is a site still failing.

Then load the page that was failing. If it works, the loader was the whole problem. If it still fails, the message should now be specific, which is progress, because a decoding error and a missing loader error read differently.

One thing worth saying to anyone running encoded software. The files cannot be edited. If you need to change behaviour, the change goes in configuration the application exposes, not in its PHP files, because the PHP files are not PHP until the loader turns them into it.

Summarize this guide with

You need an account with the assistant you choose. It fetches the guide itself, and you send the prompt, not us.

Every guide in this category is on the Shared Web Hosting page.