Verified and Tested 10/3/15

Introduction

In this How-To, we will walk you through the install and configuration of IonCube on Fedora 23. The IonCube Loader provides additional security to your PHP files or websites. It is a module that encrypts basic PHP language making it more secure and more reliable.

Prerequisites

– You need a Fedora 23 server configured with a static IP address. If you do not have a server already, you why not try our super fast cloud hosting and spin a new server up in under 30 seconds.

– You will also need to have a LAMP (Linux, Apache, MySQL, PHP) stack installed. If you need assistance with configuring LAMP, see our related article here.

Installing IonCube on Fedora 23

To get started, log in to your Fedora 23 server via SSH or Console. If you are using the Atlantic.Net cloud service, note that they are setup with minimal installations to avoid having unnecessary packages from being installed and never used. If some software packages that you’re used to using aren’t installed by default, feel free to install them as needed.

Before we get started, let’s download tar so we can simplify the walkthrough. tar is used to create, maintain, modify, and extract archived files.

dnf install tar

Once installed, make sure that your server is fully up-to-date.

dnf update

Downloading ionCube on Fedora 23

For this tutorial, we are using the 64-bit version of ionCube. Use the wget command to get the most recent ionCube file from their website:

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extract the ionCube file by using the following command:

tar xfz ioncube_loaders_lin_x86-64.tar.gz

Alternatively, if you have a 32-bit system you can download the 32-bit version from the site:

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Extract the 32-bit ionCube file with the following command:

tar xfz ioncube_loaders_lin_x86.tar.gz

Configuring ionCube on Fedora 23

In order to configure ionCube correctly, we must select the correct version according to the PHP version that is currently installed on your server. So let us verify the version of PHP that is currently installed on your system with the following command:

php -v
PHP 5.6.14 (cli) (built: Sep 30 2015 12:53:57)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

Now, we have the correct version of PHP (in our case 5.6) we can run the following command to find the location of the extension directory of your version of PHP because this is where we will move the IonCube files later on.

php -i | grep extension_dir
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
sqlite3.extension_dir => no value => no value

(Note:On the test system we’re working from, the extension directory location reads is extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules. However, every version may have a different directory name, use the one that your version displays).

Now that you know which version of PHP you are running, and the location of your PHP extension, we can proceed with selecting the ionCube files that we need for our system. Run the ls (list) command on the ioncube folder to get that information.

ls ioncube
ioncube_loader_lin_4.1.so     ioncube_loader_lin_5.1_ts.so  ioncube_loader_lin_5.6.so
ioncube_loader_lin_4.2.so     ioncube_loader_lin_5.2.so     ioncube_loader_lin_5.6_ts.so
ioncube_loader_lin_4.3.so     ioncube_loader_lin_5.2_ts.so  LICENSE.txt
ioncube_loader_lin_4.3_ts.so  ioncube_loader_lin_5.3.so     loader-wizard.php
ioncube_loader_lin_4.4.so     ioncube_loader_lin_5.3_ts.so  README.txt
ioncube_loader_lin_4.4_ts.so  ioncube_loader_lin_5.4.so     USER-GUIDE.md
ioncube_loader_lin_5.0.so     ioncube_loader_lin_5.4_ts.so  USER-GUIDE.txt
ioncube_loader_lin_5.0_ts.so  ioncube_loader_lin_5.5.so
ioncube_loader_lin_5.1.so     ioncube_loader_lin_5.5_ts.so

Since our installed version of PHP is 5.6, then I will need to locate the 5.6 version of the ionCube Loader and copy it to the Extensions Directory that we identified earlier. This can be accomplished with the following command:

cp ioncube/ioncube_loader_lin_5.6.so /usr/lib64/php/modules

Once done, we must configure the php.ini file so that it knows where to look for the newly moved ioncube_loader file. Using your favorite text editor, open the php.ini file:

nano /etc/php.ini

At the very top of the file, add the following line:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_5.6.so

Restart Apache so that the web server accepts all the configuration changes that were made with the following command:

systemctl restart httpd.service

Testing ionCube on Fedora 23

Our last step is to make sure that ionCube is now loading. You can run the following php -v command and will notice that a message stating ionCube Loader is enabled:

php -v
PHP 5.6.14 (cli) (built: Sep 30 2015 12:53:57)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
 with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.0.19, Copyright (c) 2002-2015, by ionCube Ltd.

This is the Zend Engine confirmation that ionCube Loader is currently enabled.

What’s Next?

Congratulations! You now have successfully installed and configured ionCube Loader on Fedora 23.Thank you for following along and feel free to check back with us for further updates.