您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關workerman啟動失敗的解決方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
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來綁定。
現象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用戶啟動服務。
關于“workerman啟動失敗的解決方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。