在WSL部署RabbitMQ,安装成功之后将官网的示例代码运行了一下,出现错误:
PHP Fatal error: Uncaught PhpAmqpLib\Exception\AMQPConnectionClosedException: Broken pipe or closed connection
一直以为可能是自己代码里配置错了,看了半天源码没结果,就放着了。
今天想起来,会不会是WSL本身的问题呢?
果不其然,在stackoverflow上看到一个回答,要将默认的监听地址改为 127.0.0.1。默认的是同时监听了IPv6的地址,可能导致了问题。为什么会这样就不清楚了。?
sudo vim /etc/rabbitmq/rabbitmq-env.conf
# By default RabbitMQ will bind to all interfaces, on IPv4 and IPv6 if
# available. Set this if you only want to bind to one network interface or#
# address family.
NODE_IP_ADDRESS=127.0.0.1
参考链接?:
今天在hyperf中用rabbitmq也碰到了这个问题
测试
大佬,太感谢了,完美解决!!!!! 今天正好用wsl的ubuntu系统安装rmq,结果死活创建不了连接,
一直提示Reason: “EOF”,找遍了方法都没用,以前直接用虚拟机或者线上服务器从来没出现过这问
题,差点让人崩溃.