PHP 8 ioncube_loader failed loading

2.7k views Asked by At

I am preparing a CentOS 7 server to migrate some services. Fresh install, so it's PHP 8 now. However (my required) IONCUBE loader fails to load:

# php -v
Failed loading /usr/lib64/php/modules/ioncube_loader_lin_8.1.so:  /usr/lib64/php/modules/ioncube_loader_lin_8.1.so: undefined symbol: zend_incompatible_double_to_long_error
PHP 8.0.23 (cli) (built: Aug 30 2022 12:16:34) ( NTS gcc x86_64 )

Currect system is PHP 7.2 and I never had ioncube installation issues.

Even tried loading the _ts file.

1

There are 1 answers

0
MrBlc On

You are loading 8.1 loader under PHP 8.0, which doesn't work, for PHP 8.0, you need loader for 8.0 which doesn't exist. Ioncube is usually skipping x.0 version of PHP, so, if you need loader, you need to upgrade to PHP 8.1.

Also, keep in mind that files are backward compatible only in mayor version of PHP. PHP 7.4, with loader for PHP 7.4 will execute files encoded with PHP 7.1 to 7.4. But, PHP 8.1 will not execute files encoded with PHP 7.4. If you need files which need to run on both, PHP 7.4 and PHP 8.1, you need bundled versions (options when encoding).