最近使用zmq的时候遇到了很多问题,网上的文档有很多错误的,害我走了不少弯路,还好最后解决了问题,现将解决方法记录在此,希望能够帮助到大家。
安装ZMQ
我是去官网下载了windows的安装包,并没有按照很多博客里说的要编译,毕竟不是谁都是写c++的,上哪儿找编译环境去,我这里把下载链接贴出来,http://zeromq.org/distro:microsoft-windows
配置php_zmq
这一块是网上骗人文章最多的地方,正确步骤应该是这样的
- 首先查看php的版本是64位的还是32位的,顺便看看是线程安全的还是非线程安全的(一般windows下都是线程安全的),看的方法是在phpinfo查看(不知道怎么看phpinfo的需要百度一下基础知识了),如下图
红框里标注的就是了,比如我电脑上的php版本为32位的,是线程安全的
- 知道了版本以后就可以去网站上下载对应的php_zmq了,官网给的下载地址是打不开的,可以去这儿下载http://pecl.php.net/package/zmq,比如我的电脑就下载红框里的版本就可以了
- 下载好之后解压,将libzmq.dll,libsodium.dll两个文件拷到php的根目录下(别的文章都说只拷贝libzmq.dll)
然后将php_zmq.dll拷贝到刚才那个目录吓得ext文件夹,这是php默认放扩展的地方,如果你改变了就需要放到你改变后的地方
然后在php.ini中添加extension=php_zmq.dll
- 然后其实并不需要重启电脑重启apache之类的,到这一步就可以用了
报错
php_zmq.dll不是有效的win32应用程序
出现这个错误是php是32位的,下载了64位的php_zmq.dll
Unable to load dynamic library 'D:\xampp\php\ext\php_zmq.dll' - 找不到指定的模块。
没有将libsodium.dll拷入,安装前面说的将文件拷入对应的地方就可以了。
如果还有什么问题可以留言给我一起探讨。