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
- Did you edit the correct php.ini file? To check this, load a phpinfo page for the server and note the path for the "Configuration file". This is the main php.ini file and you must edit that one. If it does not exist, create it.
- Make sure that you only have one Loader in the php.ini file.
- Use "zend_extension =" and not "extension =" as the Loader is not a module extension.
- Remember that you may need to restart the web server software after changing the php.ini file or do a few page accesses before the change is picked up by Fast CGI systems.
Installing on Windows
- Use " " around the path, e.g.
zend_extension = "C:\Windows\system32\ioncube_loader_win_5.6.dll"
- If you are using IIS, note that IIS has a security model that is fussy about where dll's can be installed from. You should choose a system location, and consult the IIS documentation or system administrator for additional information.