【问题标题】:Any way to get Zend Guard Loader (php 5.3) to execute scripts protected with zendenc52.exe让 Zend Guard Loader (php 5.3) 执行受 zendnc52.exe 保护的脚本的任何方法
【发布时间】:2011-12-26 02:06:52
【问题描述】:

目前 PHP 5.3 托管环境必须安装和使用“Zend Guard Loader”扩展来处理和执行 Zend Guard 编码文件。我无法让它执行编码用于 Zend Optimizer (PHP 5.2) 的文件。

有什么解决方法吗?

【问题讨论】:

    标签: php zend-optimizer zend-guard


    【解决方案1】:

    我不这么认为......因此,我也坚持使用 php 5.2。

    如果您想使用“Zend Guard Loader”运行zend 编码的 5.2 脚本,您将需要花更多的钱购买新版本来再次编码脚本......伤心。

    【讨论】:

    • 其实我不需要花更多的钱,因为 Zend Guard 包括两个编码器,即使我不得不 - 钱不是问题。问题是我必须为 php 5.2 和 5.3 维护两个版本的编码文件,而不是只有一个可以在 Zend Guard Loader 和 Zend Optimizer 下工作。
    • 没有办法。因为这 2 个产品 100% 不兼容。
    • 也许您可以使用 bccompiler 扩展来滚动您自己的编码? (见php.net/manual/en/book.bcompiler.php)(
    • 不是一个可行的解决方案。我正在开发一个我不想安装的脚本,它要求用户在托管环境上安装这个扩展(虽然大多数 5.2 主机都启用了 Zend Optimizer,而许多 5.3 主机都启用了 Zend Guard Loader)。
    • 那我猜你卡住了,因为 Zend 不想这样做。
    【解决方案2】:

    对我有用的唯一方法是包含 php 5.2 文件而不是 Zend Guards 消息,如果条件检查 php 版本没有找到 zend 保护加载程序时会显示该消息。脏,但可以工作,但仍然需要存在 2 个文件,但无需加载程序在未受保护的代码中切换它们。

    【讨论】:

      【解决方案3】:

      要回答 Zend Guard/Optimizer/Loader 上下文中的编码与运行时 - 它们应该完美匹配。接受的答案不正确 - 在 PHP 5.2 中加载的优化器中执行 PHP 5.3 编码文件没有任何调整。

      如果您在有代码更新时编写/批处理编码过程,则维护 2 个目标版本非常容易。您只需使用zendenc52 执行一次源编码,然后使用zendenc53,为它们提供不同的目标目录。

      更多相关信息。 PHP 5.3 代码与 5.2 不同,您的源代码实际上应该有 2 个不同的分支来匹配这些版本。 旧闻:http://php.net/manual/en/migration53.php

      在测试/暂存 Zend Guard 编码的应用程序时,请确保您测试了编码版本(当然还需要根据需要调试开放源代码)。原因很简单 - 编码文件有一些处理混淆的数据表开销,并且可能会使用一些高级 PHP 语法改变 PHP 功能。如果在测试时在编码文件中发现任何问题 - 很容易找到并修复源。如果您只测试源版本,然后编码并部署给您的客户 - 结果是不可预测的。

      至于部署,当您安装/untar/git/svn 部署您的 PHP 文件时,您可以将 PHP 目标版本粘贴到您的发布/下载/代码推送中,以便它们安装在正确的版本中,或者部署 2 个版本在不同的文档根位置,您可以符号链接/重写到与 PHP 目标版本 5.2 或 5.3 匹配的正确受保护应用程序版本。

      最后但并非最不重要。 Zend Guard 支持的运行时是 Zend Server。它有一个社区版,任何人都可以通过 DEB / RPM 或安装文件的本机包管理器(Windows、Mac、其他不支持的 Linux本机包管理器)。 Zend Server 可选的 Loader 组件将处理编码的应用程序文件,它带有 PHP 5.2 和 5.3 分支,因此无需在 PHP 上手动安装 Zend Optimizer 或 Loader。正确迁移应用程序(编码和开源)后,从 PHP 5.2 升级到 5.3 很容易,而且是原生的。

      希望这会有所帮助。

      【讨论】:

      • 您的建议不适合我的脚本分发方案,我无法控制安装脚本的服务器环境。还有一个调整,但需要一些 Zendenc 二进制文件修改,允许为两个 zg 加载器版本提供一个文件,但非常不稳定。附:似乎唯一的方法是希望服务器很快就会开始用 5.3 替换 5.2(最近的稳定版本是 5.4)
      猜你喜欢
      • 2013-04-15
      • 2016-02-19
      • 2011-08-21
      • 2012-10-06
      • 2015-08-29
      • 2012-08-14
      • 2022-10-17
      • 2020-03-31
      • 1970-01-01
      相关资源
      最近更新 更多