ioncube_loader 问题:未定义的符号:zend_execute_ex

ioncube_loader Issue: undefined symbol: zend_execute_ex

几天来我一直在为上述问题苦苦挣扎。我的 Shopware 需要 ioncube_loader(版本 5.3.2 和 PHP 版本 7.1.8)。运行 Shopware 的服务器有 PHP 版本 5.6.40!

在商店里,我被告知我正在使用 ionCube Loader,但是当我通过 SSH 登录到服务器时,出现了错误。

以下输出可用于控制台中的以下命令:

PHP版本

[root@vh1 ~]# php -v
Failed loading /usr/lib64/php/modules/ioncube_loader_lin_7.1.so:  /usr/lib64/php/modules/ioncube_loader_lin_7.1.so: undefined symbol: zend_execute_ex
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

extension_dir

[root@vh1 ~]# php -i | grep extension_dir
Failed loading /usr/lib64/php/modules/ioncube_loader_lin_7.1.so:  /usr/lib64/php/modules/ioncube_loader_lin_7.1.so: undefined symbol: zend_execute_ex
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
sqlite3.extension_dir => no value => no value

设置包含

; Enable ioncube extension module
zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.1.so

谁能告诉我我做错了什么?我找不到关于 Google.

的错误的任何信息
undefined symbol: zend_execute_ex

为什么zend_execute_ex?它从何而来?会不会是权限导致的错误?

[root@vh1 ~]# ll /usr/lib64/php/modules/
total 8940
-rwxr-xr-x 1 root root 1500368 16. Jul 11:11 ioncube_loader_lin_5.6.so
-rwxr-xr-x 1 root root 1366576 11. Jun 15:33 ioncube_loader_lin_7.1.so

编辑:

当我在 Shopware 后台打开插件管理器时,我收到以下错误:

The file /path/to/shop/engine/Shopware/Plugins/Community/Frontend/CoeVoucherUrl
/Bootstrap.php was encoded by the ionCube Encoder
 for PHP 5.6 and cannot run under PHP 7.1 or later.
Please ask the of the script to provide a version
encoded with the ionCube Encoder for PHP 7.1.

File:Unknown

您使用的 ioncube-version 适用于 php 7.1 而不是 php 5.6。使用 PHP 5.6 时,您需要 ioncube_loader_lin_5.6.so。它也随当前 loader-packages 一起提供。您需要确保加载器版本与您的 php-version 兼容。错误消息已经指出,您正在使用 php 7.1.

的编码器

在大多数服务器上 php CLI 和 Web 之间的版本不同,因此您需要确保 CLI 使用与网络服务器相同的版本并且 ioncube 版本与其兼容。有时可以通过添加版本号(如 php7.1 ...)通过 cli 调用不同的 php 版本。

除此之外,您不能使用 shopware 商店中使用 php 7.1+ 加密的任何插件,因为商店的加密仅支持 5.6 和 7.0。如果您想使用php 7.1,您需要确保您的系统中没有加密插件。在这种情况下,插件管理器将再次工作。

https://docs.shopware.com/en/shopware-5-en/update-guides/update-guide-shopware-55#but-i-still-have-encrypted-plugins