繁体   English   中英

在 Windows 10 和 PHP7 上将 ZeroMQ PHP 扩展添加到 XAMPP

[英]Adding the ZeroMQ PHP extension to XAMPP on Windows 10 and PHP7

我在将 ZeroMQ PHP 扩展添加到 XAMPP 时遇到问题。

设置:Windows 10、PHP7、XAMPP (7.0.9)

我已经采取的步骤:

  1. 将 PHP ( D:\\xampp7\\php ) 和 PHP 扩展 ( D:\\xampp7\\php\\ext ) 目录添加到系统变量 (PATH)

  2. 按照zeromq.org上的说明进行操作 我从pecl 存储库下载了x86ts版本,因为列出的快照链接 ( http://snapshot.zero.mq/ ) 已关闭。

  3. libzmq.dll复制到 PHP 目录中,将php_zmq.dll复制到 PHP 扩展目录中

  4. 通过添加extension=php_zmq.dll更新php.ini ( D:\\xampp7\\php\\php.ini ) 并检查extension_dir="D:\\xampp7\\php\\ext"的扩展目录

  5. 通过控制面板重新启动 XAMPP。

Apache 错误日志显示以下内容:

[Sat Nov 26 18:30:27.461679 2016] [ssl:warn] [pid 15280:tid 588] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sat Nov 26 18:30:27.546320 2016] [core:warn] [pid 15280:tid 588] AH00098: pid file D:/xampp7/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Nov 26 18:30:27.630955 2016] [ssl:warn] [pid 15280:tid 588] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\\xampp7\\php\\ext\\php_zmq.dll' - Das angegebene Modul wurde nicht gefunden.\r\n in Unknown on line 0
[Sat Nov 26 18:30:27.662208 2016] [mpm_winnt:notice] [pid 15280:tid 588] AH00455: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.9 configured -- resuming normal operations
[Sat Nov 26 18:30:27.662208 2016] [mpm_winnt:notice] [pid 15280:tid 588] AH00456: Apache Lounge VC14 Server built: Jul  1 2016 11:09:37
[Sat Nov 26 18:30:27.662208 2016] [core:notice] [pid 15280:tid 588] AH00094: Command line: 'd:\\xampp7\\apache\\bin\\httpd.exe -d D:/xampp7/apache'
[Sat Nov 26 18:30:27.662208 2016] [mpm_winnt:notice] [pid 15280:tid 588] AH00418: Parent: Created child process 964
[Sat Nov 26 18:30:28.363210 2016] [ssl:warn] [pid 964:tid 616] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name

更新:

似乎找不到该模块,但如果我添加 x64 版本,Apache 错误日志表明该模块不是有效的 Win32 应用程序。

PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\\xampp7\\php\\ext\\php_zmq.dll' - %1 ist keine zul\xef\xbf\xbdssige Win32-Anwendung.\r\n in Unknown on line 0

解决方法:

LoadFile "D:/xampp7/php/libzmq.dll"添加到 httpd.conf 修复了我的问题。

这些步骤对我有用(php 7.1.7 - xampp - window 10 x64)

第 1 步

从此站点下载 x86 dll 文件

第 2 步

php_zmq.dll复制到C:\\xampp\\php\\ext

第 3 步

libsodium.dlllibzmq.dll复制到C:\\xampp\\php

第 4 步

extension=php_zmq.dll添加到php.ini文件

第 5 步

重启阿帕奇

我知道这是一个老问题,尽管我只花了 2 天时间试图让 ZeroMQ 正确加载。 如果有人在遵循所有基本说明后仍然无法正常工作,我还有 2 个步骤可供您查看。

可以在 php 7.3.12、Win10 x64 下运行

第一。 确保您编辑了所有 php.ini 文件。

如果您使用 wamp 服务器,当您单击窗口右下角的 wamp 图标并转到 php->php.ini 时,Apache 将拥有它自己的 php.ini。 然后在D:\\xampp7\\php\\php.ini下手动添加相同的extension=php_zmq.dll以及您的D:\\xampp7\\php\\php.ini 老实说,我不是 100% 确定这是必要的,但将它包括在两者上都不会受到伤害。

第二。 在 libzmq.dll 上运行 deplister.exe

这就是它为我工作的原因。 从 windows.php.net 下载的任何 php 都应该有 deplister.exe(它也包含在 wamp php 版本中)。 转到libzmq.dlldeplister.exe所在的 wamp 服务器上的 php 版本库。 然后打开 cmd 并运行以下行: deplister php_zmq.dll这将显示php_zmq.dll运行所需的依赖项列表。 您可能会注意到它需要一个非常特定的libzmq.dll版本,因此将您的 dll 文件重命名为请求的文件名。 然后运行php -m看看zmq是否显示在模块列表中。 如果是这样,您应该能够运行像composer update这样的命令来将所需的库版本导入到您的项目中而不会出错!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM