如何在 Xampp 上安装 Zend Guard Loader

Posted

技术标签:

【中文标题】如何在 Xampp 上安装 Zend Guard Loader【英文标题】:How to install Zend Guard Loader on Xampp 【发布时间】:2014-10-19 08:08:51 【问题描述】:

我一直在使用 Zend Guard 对文件进行编码的软件。由于 php 5.3 + 版本不支持 Zend Optimizer,因此我必须安装 Zend Guard Loader 才能在我的 windows xampp 安装上运行该应用程序。

我下载了 Zend 保护加载器并复制到 xampp 文件夹。然后我将以下行编辑到 php.ini 文件。

zend_extension ="E:\xampp\ZendGuardLoader\php-5.4.x\ZendLoader.dll"
zend_loader.enable=1

然后重新启动 xampp 但它给出了 php5.dll 丢失错误 然后我从互联网下载了 php5.dll 文件并上传到 xampp/php 文件夹并编辑了以下文件 xampp\apache\conf\extra\httpd-xampp.conf 我在这里编辑了这一行

LoadFile "/xampp/php/php5ts.dll"

到 加载文件“/xampp/php/php5.dll”

然后php5.dll错误消失,出现以下错误:

"程序入口点zend_new_interned_string 不能位于动态链接库E:\xampp\ZendGuardLoader\php-5.4.x\ZendLoader.dll"

当我尝试在互联网上搜索时,发现这是在 xampp php 中启用 'Thread Safety' 的问题。我不知道如何禁用“线程安全”或如何使用 “非线程安全” php 版本与 xampp。

请帮助我在 Windows 8 os Xampp 1.8.1 和 php 5.4.x 上安装 Zend Guard Loader

【问题讨论】:

【参考方案1】:

在您浪费更多时间检查之前,请查看 phpinfo() 输出是否显示线程安全已启用。

Zend Extensions 是 NTS(非线程安全),因此如果启用它,它将无法加载,您需要 NTS PHP 来加载 Guard Loader 扩展。

不能禁用线程安全,它是一个编译标志以及编译后的二进制文件如何工作。

您需要加载一个不同的非线程安全的 Apache PHP 模块(php.net 发布 TS 和 NTS 版本)。

看看 http://forums.zend.com/viewtopic.php?f=57&t=43013

【讨论】:

【参考方案2】:

所以,我遇到了同样的问题。

XAMPP(就版本 3.2.1 而言)与 Thread Safe PHP 编译捆绑在一起。这是 php 二进制文件是使用标志强制“Tread Safe”编译的,因此,它不能在相同的二进制文件上切换回来。

您需要更改 XAMP 的二进制文件以编译那些 Non Tread Safe (NTS)。

我关注this guide 在 XAMP 中替换 PHP 以使用 NTS。该指南解释了如何启用 FastCGIZend OPcache,因此如果您复制粘贴这些步骤,您应该让 XAMP 在 FastCGI 模式下运行 PHP。相关步骤是:

    确定正在运行的 Apache 服务器的版本。 [..] 下载适用于 windows 的最新 PHP 二进制文件。选择非线程安全的(您可以选择更新版本的 php)[...] 为新版本的 PHP 创建一个新文件夹(例如 c:\xampp\php56-nts )。 编辑 Apache 配置文件(例如:c:\xampp\apache\apache\conf\extra\ httpd-xampp.conf )并替换 php5 模块配置中可能需要的路径更改 .dll 的名称 由于从php.net下载的php二进制文件可用于开发或生产,您需要根据需要创建一个php.ini(文件夹中有2个模板可供您使用开头:php.ini-developmentphp.ini-production

有了这个,基本上你就有了 XAMPP 来运行 PHP 的 NTS 版本。然后,您可以安装 Zend Guard Loader as the guide says。基本上:

    下载 Zend Guard Loader 二进制文件 找到 ZendLoader.dll 文件并将其粘贴到 php for xampp 的库路径中。获取路径。

    配置 php.ini 以使用 ZendLoader;添加

    zend_extension= zend_extension=

    添加任何其他可选配置。重新启动 Apache,它应该使用 NTS 版本的 PHP 重新启动。您可以使用 localhost/xampp/phpinfo.php 进行测试

【讨论】:

这并不能真正回答问题。如果您有其他问题,可以点击 提问。一旦你有足够的reputation,你也可以add a bounty引起更多的关注。 @AKHolland 我找到了解决方案。该页面告诉我编辑以前的而不是发布新的。

以上是关于如何在 Xampp 上安装 Zend Guard Loader的主要内容,如果未能解决你的问题,请参考以下文章

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

如何检查是不是安装了 Zend Optimizer 或 Zend Guard Loader

如何在 wamp 中添加 Zend Guard 运行时

PHP:使用Zend对源码加密Zend Guard安装以及Zend Guard Run-time support missing的解决方法

没有 PHP5 文件夹,无法在 Linux 上安装 Zend Guard

在 Zend Guard 中使用 Doctrine Annotations