#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターサーバー設定の問題により fsockopen php 操作が失敗し、localhost が監視されませんでした。解決策はサーバーのネットワーク環境をリセットすることです。
具体的な質問:
php fsockopen ローカル エラー? fsockopen php 操作が失敗する問題を解決するにはどうすればよいですか?
fsockopen を使用して非同期呼び出しを行うときにエラーが発生しました。Alibaba Cloud centos と Tencent Cloud win2008 では、同じコードで問題が発生しませんでした。 ホスト アドレスを 127.0.0.1 に書き込むか、localhost が表示されます: 警告: fsockopen(): ターゲット マシンが積極的に拒否しているため、接続できません。 (10061) host が現在のサーバー ドメイン名を書き込み、次のように表示されます: 警告: fsockopen(): 接続側が一定期間経過しても正しく応答しなかったため、または接続試行が失敗しました。接続されているホストが応答しませんでした。 (10060)ホストアドレス 現在のサーバー内部ネットワーク IP は 192.168.3.3 などで、応答は正常でエラーはありません。 また、サーバが他のサーバに fsockopen する場合や、他のサーバがサーバに fsockopen したい場合も問題なく、正常に送信できます。 コードは次のとおりです。function async_post($host,$path,$data){ $post = http_build_query($data); $len = strlen($post); $fp = fsockopen( $host , 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)\n"; } else { $out = "POST $path HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "Content-Length: $len\r\n"; $out .= "\r\n"; $out .= $post."\r\n"; fwrite($fp, $out); fclose($fp); } }は最終的にイントラネット IP を通じて呼び出されますが、これはなぜでしょうか?
解決策:
問題の原因が見つかりました: サーバー設定の問題、localhost をリッスンしていませんサーバーネットワーク環境、いいえ、ネットワーク管理者がやったことはわかります。サーバーは外部 IP を介して自分自身にアクセスできません。 その結果、fsockopen には 192 経由でのみアクセスできます。 推奨学習: 「PHP ビデオ チュートリアル 」
以上がfsockopen php 操作が失敗する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。