ionCube Logo

Frequently Asked Questions

Loaders

Installing Loaders is easy when done correctly, and on most servers an installation will work without a problem. However there is no such thing as a "standard PHP installation", and servers can be setup in many different ways, and with different features enabled or disabled.

If you have problems running scripts and installing Loaders, here are explanations for the most likely symptoms that you may see.

If you are on a shared server, please make sure that you have run the ioncube-loader-helper.php script, and clicked the link to test runtime installation. Unless the server configuration has disabled the display of errors, you are likely to see a message that you will find explained here.

I visited a website and it said that I needed to install Loaders. Why, and how do I do this?
I am trying to install a PHP product and it is asking for Loaders. What do I do?
Where can I find Loaders?
How can I install Loaders?
How can I tell if a Loader is already installed?
I checked your Loaders page and cannot find Loaders for (e.g.) RedHat Linux. Do you support it?
Which Loader package do I need?
I need Loaders that I can't find on your Loaders page. Can I get these?
What does ELF file data encoding not little-endian mean?
What does wrong ELF class: ELFCLASS32 mean?
What does wrong ELF class: ELFCLASS64 mean?
What does unsupported file layout mean?
What does failed to map segment from shared object: Permission denied mean?
What does undefined symbol: compiler_globals mean?
What does undefined symbol: zend_hash_destroy mean?
I see cannot open shared object file: No such file or directory but I know that the Loader exists. Why?
The file ... cannot be decoded by this version of the ionCube Loader. Why?
I updated the php.ini file and the Loader still does not work. Why?


Q. I visited a website and it said that I needed to install Loaders. Why, and how do I do this?

A. This means that the website is not setup correctly. If this is not your own website you can ignore the message, and you do not need to install anything on your computer. If you are the site administrator, your site requires the ionCube Loader to be installed.

Q. I am trying to install a PHP product and it is asking for Loaders. What do I do?
A. The provider of the scripts should be able to assist and it is best to contact them in the first instance. Installing Loaders is generally easy though, and we provide a script called the Loader Wizard on our Loaders page that you can install on your site to advise.

Q. Where can I find Loaders?
A. Loaders for common operating systems and architectures can be found on our Loaders page.

Q. How can I install Loaders?
A. A script called the Loader Wizard is available on the Loaders page that assists with installation. Install the script onto your website and access from your browser for instructions. There is also an installer program for Windows that can deploy Loaders remotely.

Q. How can I tell if a Loader is already installed?
A. If a Loader is already installed in the php.ini file, it will show up near the start of phpinfo output in the box that mentions the PHP engine.

Q. I checked your Loaders page and cannot find Loaders for (e.g.) RedHat Linux. Do you support it?
A. Most likely yes. RedHat, Debian, Mandrake, SuSE are just some of the many distributions of the same Linux operating system. The ionCube Loaders are dependent on the operating system (e.g. Linux) and processor type, (e.g. x86), but not any particular distribution.

Q. Which Loader package do I need?
A. This depends on the target system. The Loader Wizard script will usually be able to detect and indicate which package and Loader is required.

Q. I need Loaders that I can't find on your Loaders page. Can I get these?
A. We have Loaders for common platforms, but if you cannot find Loaders for your system please contact us via the helpdesk and we may be able to assist.

Q. What does ELF file data encoding not little-endian mean?
A. This means that the Loaders are not the correct ones for your operating system or architecture. Little endian platforms are usually x86 or x86_64, so perhaps you have the ppc or sparc Loaders by mistake. Check your operating system type and architecture, and reinstall the correct Loaders for your system.

Q. What does wrong ELF class: ELFCLASS32 mean?
A. This means that the Loaders are 32 bit (e.g. Linux x86) but the processor is 64 bit (e.g. Linux x86_64). Install the correct Loaders for the target system.

Q. What does wrong ELF class: ELFCLASS64 mean?
A. This means that the Loaders are 64 bit (e.g. Linux x86-64) but the processor is 32 bit (e.g. Linux x86). Install the correct Loaders for the target system.

Q. What does unsupported file layout mean?
A. This means that the Loaders are not the correct ones for your operating system or architecture. e.g. you may have the AMD64 FreeBSD 6 Loader when you need the x86 FreeBSD 4 Loader.

Q. What does failed to map segment from shared object: Permission denied mean?
A. This is a permissions error with the operating system. If you have access to the command line on the target server, run the command
  restorecon *.so
in the Loaders folder and restart the web server software. If this does not resolve the issue, other commands to try are:
  chcon -t shlib_t *.so
or
  chcon -t texrel_shlib_t *.so

If you are on a shared host without full access to the system, ask the hosting company to do this for you.


Q. What does undefined symbol: compiler_globals mean?
A. This means that PHP is likely built with "Thread Safety" enabled but the non-thread safe Loader is being used. Try using the Loader for your version of PHP that has _ts in the name.

Q. What does undefined symbol: zend_hash_destroy mean?
A. This can occur if PHP is configured with the option
  --enable-versioning
This option can prevent the export of global PHP API symbols, causing failure when attempting to link libraries such as the Loader or Zend Optimiser. PHP must be rebuilt without that option so that the PHP API is correctly visible. A phpinfo page should show at the top of the page what options were used to configure PHP, and should confirm that the option had been used.

Q. I see cannot open shared object file: No such file or directory but I know that the Loader exists. Why?
A. First double check that the Loader really is in the location being tried. If it is then the error means that the Loader shared library is not in the correct format for your operating system or architecture. Often this is because the x86_64 64 bit Loaders are installed on a 32 bit system, or the x86 32 bit Loaders are installed on a 64 bit system. The Loader Wizard script will usually be able to advise.

Q. The file ... cannot be decoded by this version of the ionCube Loader. Why?
A. This is because there is an older version of the Loader installed that cannot process a newer type of encoded file. You should update to the most recent Loader or ask your hosting provider to do this for you.

Q. I updated the php.ini file and the Loader still does not work. Why?
A. There are several things to check.

General Points

Installing on Windows