workerman无法socket的情况有什么处理方案
Admin 2022-07-22 群英技术资讯 622 次浏览
workerman无法socket怎么办?
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。但是在配置workerman情况下,不免有些意想不到的错误,下面小编整理网上资料并整合自身遇到的问题,给出以下几种常用的解决方案。
现象1
启动后报错类似如下:
php start.php start PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxxx (Address already in use) in /home/workerman-chat/Workerman/Worker.php on line xxxx
关键字: Address already in use
失败原因:
端口被占用,无法启动。
可以通过命令netstat -anp | grep 端口号来找出哪个程序占用了端口。
然后停止对应的程序释放端口解决。
如果不能停止对应端口的程序,可以通过更换workerman的端口解决。
如果是Workerman占用的端口,又无法通过stop命令停止(一般是丢失pid文件或者主进程被开发者kill了导致),可以通过运行以下两个命令杀死Workerman进程。
killall php ps aux|grep WorkerMan|awk '{print $2}'|xargs kill -9
现象2
启动后报错类似如下:
PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxx (Cannot assign requested address) in /home/GatewayWorker/Workerman/Worker.php on line xxxx
关键字:Cannot assign requested address
失败原因:
启动脚本ip参数写错,不是本机ip,请填写本机ip机或者填写 0.0.0.0(表示监听本机所有ip)即可解决。
提示:Linux系统可以通过命令 ifconfig查看本机所有网卡ip。
如果您是腾讯云用户,注意您的公网ip实际是代理服务器ip,公网ip并不属于你的服务器,所以无法通过公网ip绑定,但是可以通过0.0.0.0来绑定。
现象3
启动后报错类似如下:
Waring stream_socket_server has been disabled for security reasons in ...
失败原因:
stream_socket_server 函数被php.ini禁用
解决方法
1、运行php --ini 找到php.ini文件
2、打开php.ini找到disable_functions一项,将stream_socket_server禁用项删掉
现象4
启动后报错类似如下:
PHP Warning: stream_socket_server(): unable to connect to tcp://0.0.0.0:xxx (Permission denied)
失败原因
linux下监听端口如果小于1024,需要root权限。
解决办法
使用大于1024的端口或者使用root用户启动服务。
现象5
启动后报错类似如下:
WebSocket connection to 'ws://x.x.x.x:2346/' failed: Error in connection establishment:net::ERR_NAME_NOT_TIMED_OUT
失败原因
服务器防火墙挡住了设置的端口,这里于2346为例。
解决办法
进入Linux vim编辑服务器防火墙文件,添加你需要开发的服务器端口保存后重启防火墙。
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# iptables -nvl #查看允许访问的端口
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# vim /etc/sysconfig/iptables #编辑
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# /etc/init.d/iptables restart #重启
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了PHP多个进程配合redis的有序集合实现大文件去重,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习 吧
如何使用php实现一个简易记事本?记事本相信大家都有使用过,那么我们能否自己来实现一个记事本呢?下面小编就给大家分享一个用PHP实现记事本示例,感兴趣的朋友可以看一下。
本篇文章给大家带来了关于laravel的相关知识,其中主要总结了最常见的laravel面试题,以便菜鸟以及有经验的应聘者找到合适的工作,希望对大家有帮助。
这篇文章主要介绍了PHP使用递归按层级查找数据的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了PHP八大设计模式案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008