Search code examples
phpapacheioncube

ioncube installation error on apache 2.4


I'm unable to make ioncube encoder work with Apache 2.4.12 and PHP 5.5.8. So, this is what I've done by now:

1. Installed httpd-2.4.12-win32-VC11 [http://www.apachelounge.com/download/]
2. Installed php-5.5.8-Win32-VC11-x64.zip [http://windows.php.net/downloads/releases/archives/]

Their raw combination works ok - I can run php scripts etc. I then:

3. Installed ioncube for Windows VC11 (64 bits) [https://www.ioncube.com/loaders.php]

I made corrections to php.ini and when I do php -m I see that it loads ioncube extension without any errors. However, when I now start Apache I get an error with a message about zend_get_hash_value and php5ts.dll. (PS. Combination with Apache 2.2, PHP 5.4 and ioncube works for me, but it seems rather outdated).


Solution

  • It seems like you have mismatched the thread-safe version of Apache and the ionCube Loader. PHP extensions have to match exactly the version that they run on, that is PHP with thread-safety enabled has to have a thread-safe Loader.

    To confirm this, go to the output of your phpinfo(); and look for the entry Thread Safety. If it says disabled, make sure you have the Non-TS version of the ionCube Loader (Win x64 Non-TS zip). Likewise, if it says enabled, make sure you have to thread-safe version of the Loader (Win x64 TS zip).

    Furthermore, please consider using 32bit PHP / Apache on Windows, as PHP 64bit is still marked as experimental and can cause issues with the ionCube Loader:

    The x64 builds of PHP for Windows should be considered experimental, and do not yet provide 64-bit integer or large file support (source)