The IonCube Loader is a secure PHP extension designed to load PHP files that are encrypted using the IonCube Encoder software. It's a robust solution that is used to decode and install protected files on the runtime and make them available to PHP. The program is freely available and provides benefits such as preventing your source code from being stolen and increasing your website’s loading speed.
Ready? Let’s get started!
Before You Begin
For this tutorial to run flawlessly your require the following:
- A fully configured Debian 9 server with LAMP stack installed.
Step 1 - Preinstallations
Before you install IonCube Loader on your Debian 9 server, you are required to update and upgrade all packages on your server. Run the commands below to update and upgrade your package index:
$ sudo apt-get update $ sudo apt-get upgrade
The packages will be updated and upgraded automatically, Once this process is complete, execute the command below to apply these changes:
$ sudo reboot
That is it! Your server is ready for the installation.
Step 2 - Installing The IonCube Loader
The first thing when installing the IonCube Loader is downloading the most recent IonCube Loader package from the official IonCube website. To download the latest package, issue the command below:
$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Once this file is downloaded, run the command below to extract it:
$ sudo tar -xvzf ioncube_loaders_lin_x86-64.tar.gz
The command above will extract the file and store in a default folder called ioncube. Once this file is unzipped, run the command below to change directory to the aforementioned ioncube folder.
$ sudo cd ioncube
Now, issue the following command to view the extension:
$ sudo ls
This will give you an output displaying a list of IonCube Loader files that correspond to a number of PHP versions:
ioncube_loader_lin_4.1.so ioncube_loader_lin_5.0_ts.so ioncube_loader_lin_5.4.so ioncube_loader_lin_7.0_ts.so README.txt ioncube_loader_lin_4.2.so ioncube_loader_lin_5.1.so ioncube_loader_lin_5.4_ts.so ioncube_loader_lin_7.1.so USER-GUIDE.pdf ioncube_loader_lin_4.3.so ioncube_loader_lin_5.1_ts.so ioncube_loader_lin_5.5.so ioncube_loader_lin_7.1_ts.so USER-GUIDE.txt ioncube_loader_lin_4.3_ts.so ioncube_loader_lin_5.2.so ioncube_loader_lin_5.5_ts.so ioncube_loader_lin_7.2.so ioncube_loader_lin_4.4.so ioncube_loader_lin_5.2_ts.so ioncube_loader_lin_5.6.so ioncube_loader_lin_7.2_ts.so ioncube_loader_lin_4.4_ts.so ioncube_loader_lin_5.3.so ioncube_loader_lin_5.6_ts.so LICENSE.txt ioncube_loader_lin_5.0.so ioncube_loader_lin_5.3_ts.so ioncube_loader_lin_7.0.so loader-wizard.php
For IonCube to work correctly, you must select the IonCube Loader file that corresponds to a PHP version deployed on your Debian 9 server. To check the version of PHP implemented on your system, run the command below:
$ sudo php -v
This will give you an output like the one below:
PHP 7.0.30-0+deb9u1 (cli) (built: Jun 14 2018 13:50:25) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.30-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies
Once you find the version of PHP installed on your server, run the command below to locate the directory of your PHP extension:
$ php -i | grep extension_dir
This will give you the output below:
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012
This shows that the directory of your PHP extension is /usr/lib/php/20151012. Now that you know where the PHP extension is stored, copy the appropriate IonCube Loader file to this directory:
$ sudo cd $ sudo cp ioncube_loader_lin_7.0.so /usr/lib/php/20151012/
Note: The file you are copying must correspond to the PHP version deployed on your system. If you have installed a different version, for instance, PHP version 5.6, the IonCube Loader file to copy will be ioncube_loader_lin_5.6.so.
Next, open the php.ini file and incorporate the IonCube extension’s path. First, run the command below to open this file:
$ sudo nano /etc/php/7.0/apache2/php.ini
Copy the line below and add it to this file:
Save the changes and exit the nano editor, then run the command below to restart Apache.
$ sudo systemctl restart apache2
In case, you are using Nginx as your PHP processor, run the command below to open the PHP-FPM php.ini file:
$ sudo sudo nano /etc/php/7.0/fpm/php.ini
Add the line below:
Save the changes and exit the nano editor, then issue the command below to implement these changes:
$ sudo systemctl restart php7.0-fpm
Step 3 - Confirming IonCube Loader Installation
To check if the process was successful, issue the command below:
$ sudo php -v
If everything is okay, you will get an output with a line that indicates IonCube Loader is enabled:
PHP 7.0.30-0+deb9u1 (cli) (built: Jun 14 2018 13:50:25) ( NTS ) Copyright (c) 1997-2017ThePHPGroup ZendEnginev3.0.0, Copyright (c) 1998-2017ZendTechnologies withtheionCubePHPLoader (enabled) + IntrusionProtectionfromioncube24.com (unconfigured) v10.2.4, Copyright (c) 2002-2018, byionCubeLtd. withZendOPcachev7.0.30-0+deb9u1, Copyright (c) 1999-2017, byZendTechnologies
That is it! IonCube Loader has been successfully installed on your Debian 9 virtual server or dedicated server.