2

This is how I am compiling PHP 5.6.11 with apache2 2.4.16 on cenOS 6.7:

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/lib --with-mysql --with-curl --with-openssl --disable-fileinfo --enable-bcmath --enable-calendar --enable-ftp --enable-libxml --enable-mbstring --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-kerberos --with-mcrypt --enable-sockets --with-zlib --with-pdo-mysql --with-mysqli --with-gettext --enable-cgi --enable-mbstring --with-gd --enable-pdo --with-pdo-mysql --with-pdo-pgsql --with-mysqli=/usr/bin/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock '--with-snmp' '--enable-soap'

But when I include ioncube loader in php.ini with:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_5.6.so

It starts giving me this error on php version check:

php -v Failed loading /usr/lib64/php/modules/ioncube_loader_lin_5.6.so:

/usr/lib64/php/modules/ioncube_loader_lin_5.6.so: undefined symbol: executor_globals PHP 5.6.11 (cli) (built: Dec 28 2015 17:35:58) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

I am also sure about the extension directory, because I get this:

php -i | grep extension_dir Failed loading /usr/lib64/php/modules/ioncube_loader_lin_5.6.so:

/usr/lib64/php/modules/ioncube_loader_lin_5.6.so: undefined symbol: executor_globals extension_dir => /usr/lib64/php/modules/ => /usr/lib64/php/modules/ sqlite3.extension_dir => no value => no value

So, I have put ioncube_loader_lin_5.6.so in modules directory.

Meanwhile I am getting blank screen on ioncube encoded page. I have tried to figure out the error "undefined symbol: executor_globals" which generally comes when there is a version difference between php and ioncube. But I am using the correct loader 5.6 for php 5.6.11.

Please help me get out of this nasty thing.

Hashmi
  • 143
  • 10
  • 1
    Have you made sure the thread-safety matches with the ionCube Loader? e.g. if `php -i | grep "Thread Safety" -i` shows up as enabled, you *must* use the thread-safe ionCube Loader. – SebiH Jan 01 '16 at 22:44
  • Ahh ... so simple thing I was ignoring. So turned out I was still not using correct version. Thanks so very much @SebiH You saved hell of my time. Please answer the same instead of comment, so I can accept to help any other like me looking for the same. – Hashmi Jan 01 '16 at 22:52
  • Sure - glad to be of help. – SebiH Jan 01 '16 at 23:02

1 Answers1

2

As requested, and for more visibility:

The Thread Safety in both the ionCube Loader and the PHP binary have to match - e.g. if php -i | grep "Thread Safety" -i shows up as enabled, you must use the thread-safe ionCube Loader.

SebiH
  • 136
  • 3