PHP 5.4.31 + Zend Guard 配置问题

Posted

技术标签:

【中文标题】PHP 5.4.31 + Zend Guard 配置问题【英文标题】:PHP 5.4.31 + Zend Guard configuration issue 【发布时间】:2014-10-27 04:34:31 【问题描述】:

我在 Amazon Web Services 配置一个 Ubuntu 14.04 网络服务器。我安装了最新的 php5.5 作为基础,但我使用的是PHP Farm,以便我可以将 PHP5.4.31 用于需要 Zend Guard 的特定项目,该项目仅与最高 5.4.x 的 PHP 兼容。我将这些行添加到我的自定义 php.ini

zend_extension=/usr/local/php/ioncube_loader_lin_5.4.so
zend_extension=/usr/local/php/ZendGuardLoader.so

所以,一切正常,但是当我编译 PHP 自定义构建时,我最终得到了这个:

Cannot load the ionCube PHP Loader - it was built with configuration API220100525,NTS, whereas running engine is API220100525,NTS,debug
Cannot load Zend Guard Loader - it was built with configuration API220100525,NTS, whereas running engine is API220100525,NTS,debug

现在可以看出,构建是相同的,唯一的区别是:

API220100525,NTS vs. API220100525,NTS,debug

据我了解,PHP Zend Engine 正在调试模式下运行,但我似乎找不到如何禁用调试模式以便激活扩展。

有什么想法吗?

【问题讨论】:

可能无法禁用调试。调试编译添加了一整套“脚手架”代码。你必须找到一个非调试编译。 我是通过PHPFarm自动下载的,有配置选项可以选择哪种类型吗? 【参考方案1】:

我只是偶然发现了同样的错误。 感谢 Marc B 的提示,我查看了 PHPFarm 的 compile.sh

定义了一个标准选项:

--enable-debug

只需删除这一行,删除你编译的php东西

/path/to/phpfarm/src/php-5.x 

并用

重新编译
./compile.sh 5.x

之后你应该有一个可以与 ZendGuardLoader 一起工作的非调试版本

【讨论】:

我最终编译了 5.4.30,但我认为我已经删除了 --with-debug 标志,但我没有删除以前的安装,所以它没有用新设置刷新.

以上是关于PHP 5.4.31 + Zend Guard 配置问题的主要内容,如果未能解决你的问题,请参考以下文章

定位使用 Zend Guard 编码的 PHP 文件

wincache 与 zend guard 的冲突

Linux(centos7)如何安装Zend Optimizer Zend Guard Loader

如何在 docker php 官方镜像实例中添加 Zend Guard Loader 支持?

PHP5.3PHP5.4下安装ZendOptimizer或Zend Guard Loader的方法

获取“缺少 Zend Guard 运行时支持!”在运行 php 代码时