NOTE: The installation of Ioncube is part of our FREE 24-hour PAPs installation service, which we offer with every PAPs license purchase. However, if you are installing PAPs yourself please follow these instructions to ensure that the Ioncube decoder (and therefore PAPs) works properly.
If you have already attempted to run PAPs and there is a non-license-related error regarding Ioncube appearing on your webpage, the first-thing to do is to browse to http://www.your_domain/ioncube/loader-wizard.php .
This will give you additional information about what the problem is and suggest the best way of getting Ioncube working on your site. It is also advisable to contact your hosting company and ask them to ensure that you can use Ioncube on their server.
In some cases where the hosting company has put a php.ini file in root, catalog or admin folders of your store, you should try temporarily renaming the php.ini files to see if that fixes the problem. If it does, you can restore the use of the php.ini files if you add the following line to the top of the php.ini file:
If the loader wizard determins that you require a loader which isn't available in the Ioncube folder, you can download loaders for all platforms from this page:
A Loader file is required to read PAPs files encoded with the ionCube Encoder.
There are two ways to use this file, requiring different installation methods: run-time Loading and via the php.ini file.
Run-time Loading Installation
The run-time loading method is the easiest way to run encoded files, and
lets encoded files locate and install the correct Loader when needed.
For run-time loading to work, a directory called 'ioncube' containing the
Loaders should be placed in or above the top
directory of encoded files. For example, if you have encoded files in
or below '/var/www/htdocs/', you might place the 'ioncube' directory
in '/var/www/htdocs' or '/var/www'.
Uploading the 'ioncube' folder from the PAPs distribution zip in the position it occupies within the zip file will achieve this, but if your store's root folder is the same as your web root folder, you can also upload the 'ioncube' folder to there.
Troubleshooting Run-time Loading
If encoded files fail to run with run-time loading, you can test this by
using the helper PHP script 'ioncube-loader-helper.php' that's included in the 'ioncube' folder.
- Copy the 'ioncube-loader-helper.php' and 'ioncube-encoded-file.php' PHP scripts to a directory where you
expect encoded files to be working.
- Access the 'ioncube-loader-helper.php' script in a browser or with a PHP cli or cgi executable.
- Choose the 'Run-time Loading Compatibility Test' option.
- The script will try to locate and install the required Loader, and will
produce output as it runs.
- Once complete the script will either report that run-time loading is working,
will provide instructions for how to correct any issue with the server configuration,
or will report that Loaders must be installed in the php.ini file.
Using the ionCube Install Assistant
Installing in the php.ini file is also simple, and offers the best
performance for encoded scripts. It is also required for systems that use
safe mode, or if PHP has been built with thread support, e.g. on Windows.
The 'php.ini Install Assistant' link on the installation helper PHP script is provided
to assist with this. Access the script from a web server or a PHP cli or cgi executable
and it should tell you which Loader to install, which file to edit and
what you need to add (it's just a one line change).
If you wish to install without using the assistant script then please read
the following section.
Manual Installation in the php.ini File
Before installing, you need to know:
- Which operating system you are using.
- Which PHP version you are using.
- Is your PHP build threaded or not?
- Where your php.ini file is.
The 'Server System Information' link in the helper script will give you the required information.
Example
Suppose the following information is contained in the sysinfo.php script output:
PHP Version => 4.3.0
System => Linux pod 2.2.16 #1 Sat Sep 30 22:47:40 BST 2000 i686
Build Date => May 28 2003 13:41:42
Configure Command => './configure'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/lib/php.ini
PHP API => 20020918
PHP Extension => 20020429
Zend Extension => 20021010
Debug Build => no
Thread Safety => disabled
This shows that:
- The system is Linux
- PHP is PHP 4.3.0
- PHP is not threaded (thread safety disabled)
- The php.ini file is in /usr/local/lib
Using this information we may install the Loaders. The method depends on whether your server is running Unix (e.g. Linux) or Windows.
Installation on a Unix Server
If your PHP is not threaded you need a Loader called:
ioncube_loader_<os type>_<php flavour>.so
If your PHP is threaded you need a Loader called:
ioncube_loader_<os type>_<php flavour>_ts.so
<os type> will be 'lin' for Intel Linux, 'fre' for FreeBSD, 'sun' for Sparc
Solaris, 'ope' for OpenBSD, 'dar' for OSX and 'net' for NetBSD.
<php flavour> will be 4.0, 4.1, 4.2 or 4.3 - i.e the first 2 digits of your
PHP version.
Edit your php.ini file and for non-threaded PHP add:
zend_extension = /<path>/ioncube_loader_<os type>_<php flavour>.so
and for threaded PHP add:
zend_extension_ts = /<path>/ioncube_loader_<os type>_<php flavour>_ts.so
Replace <os type> and <php flavour> with whatever is right for your system,
and <path> with the path to where the Loader is installed,
e.g. /usr/local/ioncube
If there are other zend_extension entries in the php.ini file place this new
entry before the existing entries.
For example, with Linux running PHP 4.1.2 and Apache 1, you might add:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_4.1.so
For FreeBSD running threaded PHP 4.3.1 with Apache 2, you might add:
zend_extension_ts = /usr/local/ioncube/ioncube_loader_fre_4.3_ts.so
Installation on a Windows Server
You need a Loader called
ioncube_loader_win_<php flavour>.dll
<php flavour> will be 4.1, 4.2 or 4.3 - i.e the first 2 digits of your
PHP version.
Edit your php.ini file and add:
zend_extension_ts = "<drive>:\<path>\ioncube_loader_win_<php flavour>.dll"
where <drive> and <path> locate the Loader, and <php flavour> is whatever the
correct value is for your system. If there are other zend_extension entries
in the php.ini file place this new entry before the existing entries.
e.g.
zend_extension_ts = c:\WINNT\ioncube_loader_win_4.3.dll