這篇文章主要介紹workerman無法socket的解決方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有巴楚免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。workerman無法socket怎么辦?
Workerman是一款純PHP開發(fā)的開源高性能的PHP socket 服務(wù)器框架。被廣泛的用于手機(jī)app、手游服務(wù)端、網(wǎng)絡(luò)游戲服務(wù)器、聊天室服務(wù)器、硬件通訊服務(wù)器、智能家居、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)等領(lǐng)域的開發(fā)。但是在配置workerman情況下,不免有些意想不到的錯誤,下面小編整理網(wǎng)上資料并整合自身遇到的問題,給出以下幾種常用的解決方案。
現(xiàn)象1
啟動后報(bào)錯類似如下:
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
關(guān)鍵字: Address already in use
失敗原因:
端口被占用,無法啟動。
可以通過命令netstat -anp | grep 端口號來找出哪個程序占用了端口。
然后停止對應(yīng)的程序釋放端口解決。
如果不能停止對應(yīng)端口的程序,可以通過更換workerman的端口解決。
如果是Workerman占用的端口,又無法通過stop命令停止(一般是丟失pid文件或者主進(jìn)程被開發(fā)者kill了導(dǎo)致),可以通過運(yùn)行以下兩個命令殺死Workerman進(jìn)程。
killall php ps aux|grep WorkerMan|awk '{print $2}'|xargs kill -9
現(xiàn)象2
啟動后報(bào)錯類似如下:
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
關(guān)鍵字:Cannot assign requested address
失敗原因:
啟動腳本ip參數(shù)寫錯,不是本機(jī)ip,請?zhí)顚懕緳C(jī)ip機(jī)或者填寫 0.0.0.0(表示監(jiān)聽本機(jī)所有ip)即可解決。
提示:Linux系統(tǒng)可以通過命令 ifconfig查看本機(jī)所有網(wǎng)卡ip。
如果您是騰訊云用戶,注意您的公網(wǎng)ip實(shí)際是代理服務(wù)器ip,公網(wǎng)ip并不屬于你的服務(wù)器,所以無法通過公網(wǎng)ip綁定,但是可以通過0.0.0.0來綁定。
現(xiàn)象3
啟動后報(bào)錯類似如下:
Waring stream_socket_server has been disabled for security reasons in ...
失敗原因:
stream_socket_server 函數(shù)被php.ini禁用
解決方法
1、運(yùn)行php --ini 找到php.ini文件
2、打開php.ini找到disable_functions一項(xiàng),將stream_socket_server禁用項(xiàng)刪掉
現(xiàn)象4
啟動后報(bào)錯類似如下:
PHP Warning: stream_socket_server(): unable to connect to tcp://0.0.0.0:xxx (Permission denied)
失敗原因
linux下監(jiān)聽端口如果小于1024,需要root權(quán)限。
解決辦法
使用大于1024的端口或者使用root用戶啟動服務(wù)。
現(xiàn)象5
啟動后報(bào)錯類似如下:
WebSocket connection to 'ws://x.x.x.x:2346/' failed: Error in connection establishment:net::ERR_NAME_NOT_TIMED_OUT
失敗原因
服務(wù)器防火墻擋住了設(shè)置的端口,這里于2346為例。
解決辦法
進(jìn)入Linux vim編輯服務(wù)器防火墻文件,添加你需要開發(fā)的服務(wù)器端口保存后重啟防火墻。
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# iptables -nvl #查看允許訪問的端口
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# vim /etc/sysconfig/iptables #編輯
[root@iZwz9xxxxxxxxxxxxxxxxxx conf]# /etc/init.d/iptables restart #重啟
以上是“workerman無法socket的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站欄目:workerman無法socket的解決方法-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://vcdvsql.cn/article42/dgojhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)