workerman無法使用怎麼辦?
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 ...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
如果確實沒有程式監聽這個端口,那麼可能是開發者在workerman裡設定了兩個或兩個以上的監聽,並且監聽的連接埠相同導致,請開發者自行檢查啟動腳本是否監聽了相同的連接埠。現象2
啟動後報錯類似如下:PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxx (Cannot assign requested address) in ...workerman/ Worker.php on line xxxx
或PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxxx (在其上下文中,該要求的位址無效) in ...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監聽。雖然不能用公網ip監聽,但仍可以透過0.0.0.0來綁定。現象3Waring 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停用項刪掉現象4PHP Warning: stream_socket_server(): unable to connect to tcp://0.0.0.0:xxx (Permission denied)#失敗原因
linux下監聽埠如果小於1024,需要root權限。 解決方法使用大於1024的連接埠或使用root使用者啟動服務。 推薦:以上是workerman無法使用怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!