• 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用户启动服务。

    http://doc.workerman.net/315234

  • 相关阅读:
    正则表达式
    数组去重
    [WOJ4354] 蜀石经
    [NOI2002] 银河英雄传说
    [洛谷P2186] 小Z的栈函数
    [洛谷P2756]飞行员配对方案问题
    [洛谷P2071] 座位安排
    [洛谷P2417]课程
    [洛谷P1640] [SCOI2010]连续攻击游戏
    [洛谷P3512 [POI2010]PIL-Pilots]
  • 原文地址:https://www.cnblogs.com/xiong63/p/7600383.html
Copyright © 2020-2023  润新知