
场景描述
今天在一个新的环境下,部署一个项目,其中有用到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
}
}
查找问题
根据提示我在对应的文件和行数下找到代码:

我在本地环境下找到socket_strerror()所在的文件:
\***\plugins\php\lib\php.jar!\stubs\sockets\sockets.php
这是PHP的一个扩展,既然是Call to undefined function那很可能就是sockets相关的扩展没有安装或者打开。
经过查看php.ini文件,发现果然是扩展没有打开

解决问题
-
去掉
;extension=php_sockets.dll前面的;,重启服务PHP,apache服务。 -
查看
phpinfo():

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