浩哥笔记

我们的征途是星辰大海

  menu
40 文章
3364 浏览
0 当前访客
ღゝ◡╹)ノ❤️

PHP下使用rabbitMQ报错Call to undefined function PhpAmqpLib\\Wire\\IO\\socket_strerror()的问题查找与解决

场景描述

今天在一个新的环境下,部署一个项目,其中有用到rabbitMQ。但在执行过程中发现报错。错误信息:

{
    "code": 3000,
    "message": "Call to undefined function PhpAmqpLib\\Wire\\IO\\socket_strerror()",
    "data": {
        "file": "D:\\project\\***\\vendor\\php-amqplib\\php-amqplib\\PhpAmqpLib\\Wire\\IO\\StreamIO.php",
        "line": 89
    }
}

查找问题

根据提示我在对应的文件和行数下找到代码:
image.png

我在本地环境下找到socket_strerror()所在的文件:

\***\plugins\php\lib\php.jar!\stubs\sockets\sockets.php

这是PHP的一个扩展,既然是Call to undefined function那很可能就是sockets相关的扩展没有安装或者打开。

经过查看php.ini文件,发现果然是扩展没有打开
image.png

解决问题

  1. 去掉;extension=php_sockets.dll前面的;,重启服务PHP,apache服务。

  2. 查看phpinfo():
    image.png
    可以看到sockets扩展已可用。报错消失,项目可正常使用。


标题:PHP下使用rabbitMQ报错Call to undefined function PhpAmqpLib\\Wire\\IO\\socket_strerror()的问题查找与解决
作者:barryzpc
地址:https://myblog.zhengpc.com/articles/2020/08/03/1596442518677.html
说明:转载请注明出处
赞赏:如果对你有帮助,可略微支持一下
赞赏码