One option to protect your code against copy, ensuring nobody will be able to crack it is using ionCube. The ionCube Encoder compiles source code to bytecode being able to obfuscate and encrypt compiled code.
Once your php application is compiled with ioncube to bytecode, to run it you will have to install the ionCube Loader php extension.
In this post, we will show you how to install the ionCube loader
Let’s describe the step by step process for a 64bit Linux distribution (e.g. ubuntu 18.04 LTS).
IMPORTANT: if you are running your WordPress on a wetopi server you can jump to the step “3. Load the ionCube extension“, ionCube Loader is already installed!Wetopi is a WordPress Specialized Managed Hosting. Want to try?
Sign Up and run your development servers for FREE.
1 Download ionCube Loader
Download the latest release of ionCube Loader at https://www.ioncube.com/loaders.php
Download and extract:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar -xvzf ioncube_loaders_lin_x86-64.tar.gz
2 Add the ionCube Loader php extension
You can find the folder where you have to copy the ioncube loader extension, using this shell command :
php -i | grep extension_dir
And copy your ioncube .so extension inside the folder displayed by the previous command, with php7.3 it should look like:
cd ioncube cp ioncube_loader_lin_7.3.so /usr/lib/php/20180731
Before restarting the php-fpm process, you have to declare the zend_extension in the php.ini configuration file. The best way to proceed is to create a new .ini file inside the php extension configuration directory. You can find the configuration path with this shell command:
php -i | grep 'additional .ini files'
It will show you the path of the directory for the additional .ini file of the php cli. If you are running php-fpm, the directory will be the same but instead of
/etc/php/7.3/cli/, it will begin with
3 Load the ionCube extension
To load ionCube we have to declare it as a zend_extension.
If you are running a wetopi specialized WordPress server, open a SFTP connection and edit your php.ini file
Locate this block of code and remove the
; to uncomment the zend_extension line:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ionCube PHP Loader + ionCube24 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; zend_extension=ioncube_loader.so
On a clean Ubuntu 18.04 install, you can use the following shell command to write the ini file inside the corresponding configuration directory:
# for php-fpm: echo 'zend_extension=ioncube_loader_lin_7.3.so' > /etc/php/7.3/fpm/conf.d/00-ioncube-loader.ini # for php-cli: echo 'zend_extension=ioncube_loader_lin_7.3.so' > /etc/php/7.3/cli/conf.d/00-ioncube-loader.ini
The last step is to reload the php-fpm process to apply the new configuration:
4 Apply the new configuration
If you are running a wetopi specialized WordPress server, You can reload php-fpm with a simple click in your wetopi panel. Go to your site server and click the Reload button you’ll find inside the “Menu Options”:
On an Ubuntu 18.04 install, you can use the standard shell command:
service php7.2-fpm restart
5 Verify ionCube loader is running
You can check if the install was successful with the command
php -v, it should output something like:
PHP 7.3.1-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 31 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 v10.2.1, Copyright (c) 2002-2018, by ionCube Ltd.
At wetopi, we want to minimize the friction that every professional face when working and hosting WordPress projects.
In short, we are just techies passionate about WordPress. With wetopi, a specialized WordPress hosting, we want to go further to offer professionals and agencies a platform to work efficiently and effectively.
Not a wetopi user?
Free full performance servers for your development and test.
No credit card required.