ioncube_loader问题:未定义符号:zend_execute_ex

时间:2019-07-16 13:03:27

标签: apache shopware ioncube apache-modules

我一直在努力解决上述问题。我的Shopware(版本5.3.2和PHP版本7.1.8)需要ioncube_loader。运行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

1 个答案:

答案 0 :(得分:0)

您使用的ioncube版本是针对php 7.1而不是针对php 5.6。使用PHP 5.6时,需要ioncube_loader_lin_5.6.so。当前的加载程序包也随附了它。您需要确保加载程序版本与您的php版本兼容。错误消息已经指出,您正在使用php 7.1编码器。

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

最重要的是,您不能使用来自商店软件商店的任何使用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