Using PHP files that are encoded with ioncube

We have PHP files that are encoded with ioncube. What would we need to do to get them to work in the compiled exe?

Sorry I don’t know how ioncube works for encoding PHP files. Is it some DLL extension for PHP? Do you have any documentation about how to set up the decoder with PHP?

The loader is a dll that is set to be loaded in php.ini as a zend_extension.

This is from there documentation found at :

8.2 Installing in a php.ini File

The recommended method for installation is via php.ini file, requiring the addition of one line to reference the location of the Loader. Example lines to add are shown below, where we will assume that the Loader is located in /usr/local/ioncube on Unix and C:/PHP/ext on Windows, but this need not be the case. Our example also assumes PHP 5.3 except where noted.

On Windows with thread safety disabled or enabled (PHP 5.3)**

zend_extension = "c:/PHP/ext/ioncube_loader_win_5.3.dll"

Although it looks like that ioncube overrides some internal functions of the PHP runtime, it might be compatible with ExeOutput too.
Please see our or documentation about how to add third-party PHP extensions to ExeOutput, and how to compile them too.
If it does not work, I would suggest you to contact Ioncube’s support team to find out whether they can help too.

I have copied it into the ext directory so that it shows up in the dll list. I’ve tried it as compiled and in data/ext, but it is not loading up because I cannot see it in the phpinfo() information.

One thing that their documentation shows that the php.ini extension information should be: zend_extension=ioncube_loader_win_5.3.dll
I understand from reading your documentation that if I include the DLL in to PHP Extensions section that exeoutput will take care of the extension call. But this may be a different extension call as it is not “extension=” but “zend_extension=” according to their documentation.

I have even tried putting the DLL in the DATA/ext directory and changing the php.ini to include “zend_extension=ioncube_loader_win_5.3.dll”. It still does not show up in the phpinfo() information.

Any ideas?

Please enable PHP error and warning messages (in PHP Settings => Main Settings). Are you getting any messages? Maybe the PHP runtime can’t find the DLL. You may also try to put the DLL in the same folder as your EXE file, instead of Data/ext.

i also try all tings to include EXTENSION but fails to run .

I too needed ioncube (mandated by customer) to work with EXEOut. Have to place some files in Data folder and cannot be readable by human eye. Cannot get it to work after days of trying all of the above. Following instructions in docs @

Installing for any other type of local server for windows is simple, installing for EXEOut is a nightmare and yes, I understand there is a difference between local server and EXEOut.

Looking at phpinfo() see that uses zend extension API320160303,NTS,VC14 and thread safety is disabled. With that info should be able to download @

Then adding ioncube_loader_win_7.1.dll as described by your docs does nothing. Still get message that ioncube is not loaded.

Have tried compiling into exe and end up with blank screens on start of app. No error messages produced with php debugging turned on.

Have tried to place in Data folder. App starts but get error that ioncube is not installed.

So, reading above I take you have no interest in helping us getting this to work? Would it be possible for you guys to try this and see if possible to get ioncube working with EXEOut?

As an alternate way to protect files in Data folder, why not build option to protect them as you do with other php files in file manger?


We added support for ioncube to ExeOutput 2.2. There will be a tutorial in the documentation about how to enable the ioncube extension.

1 Like

Wonderful news! Thank you.