1

我一直在使用一个文件由 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 错误消失并发生以下错误:

“无法在动态链接库 E:\xampp\ZendGuardLoader\php-5.4.x\ZendLoader.dll 中找到程序入口点 zend_new_interned_string”

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

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

4

2 回答 2

3

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

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

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

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

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

于 2015-05-28T19:50:34.053 回答
2

所以,我有同样的问题。

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

您需要为编译的非 Tread Safe (NTS) 更改 XAMP 的二进制文件。

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

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

有了这个,基本上你就有了 XAMPP 来运行 PHP 的 NTS 版本。之后,您可以按照指南中的说明安装Zend Guard Loader 。基本上:

  1. 下载 Zend Guard Loader 二进制文件
  2. 找到ZendLoader.dll文件并将其粘贴到 php for xampp 的库路径中。获取路径。
  3. 配置 php.ini 以使用 ZendLoader;添加

    zend_extension=<full_path_to_ZendLoader.dll>
    zend_extension=<full_path_to_opcache.dll>

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

于 2014-11-12T17:26:41.637 回答