Some paid applications use ionCube to protect their code against copy or to make sure nobody will be able to crack them. But to run those applications on your server, you will have to install the ionCube Loader php extension. if you have multiple php versions running on your server, you will have to perform this installation for each php version where ionCube Loader is required.
Warning :
On debian/ubuntu servers, when you use directly the command php
, it will automatically use the newest php release installed on your server.
For example, if you have php7.1 & php7.2 installed on your server, the output of the command php -v
will be :
PHP 7.2.5-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 5 2018 05:00:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.5-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
In this tutorial, we will use the command php
to install ioncube loader on a server with php7.2. If you have installed newer php versions, do not use the command php
but use the full php binary name with the version like php5.6
, php7.1
or php7.2
.
Download ionCube Loader
Download the latest release of ionCube Loader :
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Extract the archive and go inside the ionCube folder :
tar -xvzf ioncube_loaders_lin_x86-64.tar.gz
cd ioncube
Add Ioncube Loader extension
Then to find the folder where you have to copy the ioncube loader extension, use the command :
php -i | grep extension_dir
And copy the ioncube .so extension inside the folder displayed by the previous command, with php7.2 it should look like :
cp ioncube_loader_lin_7.2.so /usr/lib/php/20170718
Before restarting the php-fpm process, you have to declare the zend_extension in the php configuration. For that, the best way to proceed is to create a new .ini file inside the php extension configuration directory. You can find the conf.d path with the command :
php -i | grep additional
It will give you the path of the directory for additional .ini file of the php cli. The php-fpm directory will be the same but instead of /etc/php/7.2/cli/
, it will begin with /etc/php/7.2/fpm/
###Load ionCube Loader extension
To add the zend_extension, you can use the following command :
# for php-fpm
echo 'zend_extension=ioncube_loader_lin_7.2.so' > /etc/php/7.2/fpm/conf.d/00-ioncube-loader.ini
# for php-cli to avoid errors with cronjob
echo 'zend_extension=ioncube_loader_lin_7.2.so' > /etc/php/7.2/cli/conf.d/00-ioncube-loader.ini
The last step is to restart php-fpm process to apply the new configuration :
service php7.2-fpm restart
You can check if the install was successful with the command php -v
, it should output something like :
PHP 7.2.5-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 5 2018 05:00:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.1, Copyright (c) 2002-2018, by ionCube Ltd.
with Zend OPcache v7.2.5-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies