まず、問題に関する疑問がすでに解決されていることがわかりました。
socket_bind(): アドレス [99] をバインドできません (Amazon EC2 上の Ubuntu)
および他の多くのリソースで、問題は使用中のポートまたは外部 IP などであると述べています。
しかし、私はそれを乗り越えることができませんでした。私のサーバーは CentOS 6.3 で実行され、CPanel を使用しています (HP サーバーhttps://www.hpcloud.com/です)。
私が入手した Web ソケットのデモ ソース コードはhttps://code.google.com/p/phpwebsocket/にあります。
私の設定は
$master = WebSocket("127.0.0.1",4444); // even I tried with localhost, they worked same
私が試したステップと対応するエラーは次のとおりです。
1/. 次のコマンドを試して、使用していたポートが使用できることを確認しました
$ lsof|grep 4444 $ netstat -a -p -n
しかし、このポート4444は空いていますが、常にエラーが発生しました
警告: socket_bind(): アドレス [98] をバインドできません: アドレスは /home/myapp/public_html/websocket/server.php の 60 行目で既に使用されています
2/. 奇妙なことに、使用していたポート 835 を確認したところ、
crond 1621 root DEL REG 252,1 39835 /lib64/libpam.so.0.82.2.#prelink#.B1eyGx
atd 1633 root DEL REG 252,1 39835 /lib64/libpam.so.0.82.2.#prelink#.B1eyGx
面白いことが起こりました:
次に、ターミナル コマンド シェルで server.php を実行しました。
php /home/myapp/public_html/websocket/server.php
エラーはなくなりました。
サーバー開始: 2013-08-16 03:19:54
マスター ソケット: リソース ID #4
リッスン: 127.0.0.1 ポート 835
動くようになったと思ったら動かなかっserver.php
た
http://mysite/server.php
エラーは「許可が拒否されました」です
警告: socket_bind() [function.socket-bind]: アドレス [13] をバインドできません: 行 60 の /home/myapp/public_html/websocket/server.php で許可が拒否されました socket_bind() が失敗しました
編集:許可について、server.phpと同じレベルのディレクトリにあるclient.htmlを問題なく開くことができました。フォルダー コードのパーミッションは 755 で、ユーザーは root ではありません。私のコマンドはすべてルート権限で実装されました
どんな助けでも大歓迎です:(