在 Windows 7 WAMP 服务器上安装 zeromq

在 Windows 7 WAMP 服务器上安装 zeromq

我正在寻找在我的 Windows 7 机器上安装 zeromq 的方法,以便将 zeromq 与 PHP 一起使用(我正在使用 WAMP 服务器(5.3.4)、Apache 服务器 2.2.17)。

我关注了他们网站上的文档,但我不知道该怎么办。我安装了 zeromq来自以下网站然后我尝试复制 dll来自这个网站但它下降了。

在哪里可以获取 DLL?我是否只想安装 Windows 安装程序来自此链接,或者还有其他需要吗?

我已经从这个网站下载了 dllhttp://178.79.157.189/~mikko/win32/php-zmq-win32.zip


我正在使用 PHP 5.3.4 x64 版本和 Windows 7 x64。我尝试了以下步骤:

  1. 我已经安装ZeroMQ-3.2.2rc2~miru1.5-x64

  2. 复制libzmq.dllc:\wamp\bin\php\php5.3.4

  3. 复制php-zmq\php53\php53-ts_zeromq-3.2.2c:\wamp\bin\php\php5.3.4\ext

  4. 启用php_zmq扩展php.ini

  5. 我重启了 WAMP。它显示

    'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll'- %1 不是有效的 win32 应用程序

可能是什么问题呢?

我再次尝试使用 Wamp x86(php 5.4.3)版本和 Windows 7 x64

  1. 我已经安装ZeroMQ-3.2.2rc2~miru1.5-x86.exe

  2. 复制libzmq.dllc:\wamp\bin\php\php5.4.3

  3. 复制php-zmq\php54\php54-ts_zeromq-3.2.2c:\wamp\bin\php\php5.4.3\ext

  4. 启用php_zmq扩展php.ini

  5. 我重启了 WAMP。它显示

    PHP 启动:无法加载动态库“c:/wamp/bin/php/php5.4.3/ext/php_zmq.dll”- 在第 0 行的未知位置找不到指定的模块。\r\n

答案1

鉴于这是在 Google 上搜索“windows 上 PHP 的 zeromq dll 问题”的最佳结果,我对此发表了自己的看法。

使用 PHP 设置 zeroMQ 的正确步骤:

1)下载正确的PHP DLL包

PHP ZeroMQ 的 DLL 下载页面现在位于http://pecl.php.net/package/zmqhttp://snapshot.zeromq.com已失效)每个“可用版本”旁边都会出现一个很小的“DLL”链接。这就是您的链接。单击它,然后根据您的 PHP 版本以及它是线程安全 (TS) 还是非线程安全 (NTS) 选择您的 dll。

如果你来自 XAMPP 包,你的 DLL 应该是TS 和 x86 版本

2) 确保您安装了正确的 Microsoft Visual C++ 可再发行组件包。

截至撰写本文时,正确版本是 2012 版。下载软件包的链接:http://www.microsoft.com/en-us/download/details.aspx?id=30679

3)将 phpzmq.dll 和 libzmq.dll(来自步骤 1 中的 dll 包)复制到 PHP\Extensions 目录(默认 XAMPP php ext 路径为:C:\xampp\php\ext)

4)将 phpzmq.dll 添加到您的 PHP.ini

5)将 PHP\extensions 目录添加到 PATH 系统环境变量中(非常重要)并重新启动计算机

重新启动后,启动你的 apache 并向 PHP 之神祈祷。

常见错误FAQ:

1) 启动 apache 时弹出窗口,提示“我的计算机缺少‘libzmq.dll’”。

好吧,请确保您严格按照第 5 步进行操作,并验证目录路径是否正确以及 dll 是否存在于该目录中。

2) 启动 apache 时,会弹出另一个窗口,提示“我的计算机缺少‘php5.dll’”。

看起来您获取了与 php 版本不匹配的 dll。请从步骤 1 下载正确的 dll。

3) 出现一个随机弹出窗口,提示“'phpzmq.dll'不是有效的 win 32 应用程序。”

该 DLL 仍然不正确。请确保您获取了正确的 DLL(x86 或 x64),并且它是线程安全的或非线程安全的。您怎么知道呢?是时候玩 DLL 轮盘赌了。

希望这篇文章能够真正帮助到这里来的用户:)

答案2

@Mysteryos 的回答很有帮助,但并不准确。第 3 步和第 4 步中有几个错误值得一提。

WAMP 服务器中的正确程序
步骤3)

  • i)将 libzmq.dll 复制到 php bin根目录(例如 C:\wamp\bin\php\php5.5.12)
  • ii)将 php_zmq.dll 复制到 php扩展目录(例如 C:\wamp\bin\php\php5.5.12\ext)
  • 我正在使用 php_zmq-1.1.2-5.5-ts-vc11-x64.zip(php 5.5,线程安全),可以从此链接获取 http://pecl.php.net/package/zmq
  • 确保下载与你的 php 版本 (5.x) 匹配的版本,否则你将收到“启动 apache 时另一个弹出窗口提示“我的计算机缺少‘php5.dll’”错误


步骤4)
将 phpzmq.dll 声明添加到您的 PHP.ini 中,

值得注意的是,WAMP 服务器目录中只有少数 php.ini。
正确的 php 在 C:\wamp\bin\apache\apache2.4.9\php.ini
将以下声明附加到上面提到的 php.ini 中。

[ZMQ]
extension=php_zmq.dll

答案3

我也遇到了同样的问题。使用php-zmq_zeromq-{version}-zts文件夹中的 dll 解决了这个问题。

答案4

在 Windows 上的 PHP 5.3、PHP 7.1 和 7.2 中安装 zeroMQ 的步骤

最有可能的是,您需要 x64 和线程安全的 PHP 版本
,但您可能拥有 x32 版本的 PHP

$ php -i | grep Architecture  
Architecture => x64
  • 适用于 PHP 5.3

下载 5.3 Thread Safe (TS) x86
解压并复制 dll

复制libzmq.dll
C:\wamp\bin\php\php5.3.4 PHP 5.3 中
没有libsodium.dll

复制php_zmq.dll
C:\wamp\bin\php\php5.3.4\ext

将扩展添加到您的 php.ini,
通常与其他动态扩展一起 添加

extension=php_zmq.dll

  • 适用于 PHP 7.1

下载 7.1 Thread Safe (TS) x64
解压并复制 dll

复制libzmq.dlllibsodium.dll放入
C:\laragon\bin\php\php-7.1.20-Win32-VC14-x64中
,其中有一个libsodium.dll适用于 PHP 7.1 的 额外 dll

复制php_zmq.dll
C:\laragon\bin\php\php-7.1.20-Win32-VC14-x64\ext

将扩展添加到您的 php.ini,通常与其他动态扩展一起添加

extension=php_zmq.dll

  • 适用于 PHP 7.2

下载 7.2 Thread Safe (TS) x64
解压并复制 dll

复制libzmq.dll
C:\laragon\bin\php\php-7.2.11-Win32-VC15-x64之后
就没有libsodium.dllPHP 7.1 了

复制php_zmq.dll
C:\laragon\bin\php\php-7.2.11-Win32-VC15-x64\ext

将扩展添加到您的 php.ini,通常与其他动态扩展一起添加

extension=zmq

  • 通过查看 php 信息进行验证
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3

相关内容