我正在寻找在我的 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。我尝试了以下步骤:
我已经安装
ZeroMQ-3.2.2rc2~miru1.5-x64
复制
libzmq.dll
到c:\wamp\bin\php\php5.3.4
复制
php-zmq\php53\php53-ts_zeromq-3.2.2
到c:\wamp\bin\php\php5.3.4\ext
启用
php_zmq
扩展php.ini
我重启了 WAMP。它显示
'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll'
- %1 不是有效的 win32 应用程序
可能是什么问题呢?
我再次尝试使用 Wamp x86(php 5.4.3)版本和 Windows 7 x64
我已经安装
ZeroMQ-3.2.2rc2~miru1.5-x86.exe
复制
libzmq.dll
到c:\wamp\bin\php\php5.4.3
复制
php-zmq\php54\php54-ts_zeromq-3.2.2
到c:\wamp\bin\php\php5.4.3\ext
启用
php_zmq
扩展php.ini
我重启了 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/zmq(http://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 的步骤
- 下载适合您的 PHP 和 OS 版本的 dll
https://pecl.php.net/package/zmq
https://pecl.php.net/package/zmq/1.1.2/windows适用于 PHP 5.3 至 5.6
https://pecl.php.net/package/zmq/1.1.3/windows适用于 PHP 7.0 至 7.2
最有可能的是,您需要 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.dll
并libsodium.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.dll
PHP 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