PHP CURL エラー コード 7 の解決策: 1. selinux ディレクトリの設定ファイルを開きます; 2. 設定ファイル内の「SELINUX=enforcing」行を見つけます; 3. 「SELINUX=disabled」を変更します; 4 . 、サーバーを再起動します。
この記事の動作環境:Windows7システム、PHP7.1バージョン、DELL G3コンピュータ
phpカールの解決方法エラーコード7の質問? CURL エラー (7) を解決する方法: ホストに接続できませんか?
サードパーティ インターフェイスを呼び出すとき、ローカルで呼び出すときはすべて問題ありませんが、オンライン呼び出しは失敗します。
サードパーティ インターフェイスが curLRequest() メソッドを通じてローカルで呼び出される場合、curl_errno() メソッドは呼び出しが成功したことを示す結果 0 を返します。オンラインのcurl_errno()メソッドは結果7を返し、呼び出しは失敗しました。
環境:
ローカル wamp、オンライン lnmp
環境の問題を解決するために、サーバー cmd 上でcurl関数を実行して、3番目のサーバーにポストリクエストを作成しました。通話が成功したことがわかりました。次のようにスクリプトを呼び出します:
curl -i -X POST -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf-8' -H 'Authorization:**********************=' -d '{"voipAccount":"*********"}' 第三方接口的URL
サードパーティ インターフェイスのキー コードを呼び出します:
/** * @param $requestUrl | String 请求的地址 * @param bool $https * @param $headerInfo | array 头文件信息 * @param string $rquestMethod | String 请求类型 * @param $requestData | json 发送请求的数据 * @return mixed */ public function curLRequest($requestUrl,$requestData,$https=true,$rquestMethod='post') { $headerInfo=[ 'Accept:application/json', 'Content-Type:application/json;charset=utf-8', 'Authorization:'.self::$auth ]; $ch = curl_init();//初始化 curl_setopt($ch, CURLOPT_URL, $requestUrl);//设置访问的URL curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 curl_setopt($ch, CURLOPT_HTTPHEADER, $headerInfo); // 设置头信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出 if($https){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不做服务器认证 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//不做客户端认证 } if($rquestMethod == 'post'){ curl_setopt($ch, CURLOPT_POST, true);//设置请求是POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $requestData);//设置POST请求的数据 } $str = curl_exec($ch);//执行访问,返回结果 if(curl_errno($ch)){ Log::write('结果=========================================================:'.curl_errno($ch)); return ['statuscode' => -1, 'data' => 'curl请求错误,错误码为'.curl_errno($ch)]; } Log::write('结果=========================================================:'.curl_errno($ch)); Log::write('返回结果:'.$str); curl_close($ch);//关闭curl,释放资源 return json_decode($str,true); }
さまざまな調査の後、コードは正しいです。私の問題は構成に関連しています。オンライン環境のこと。
①selinuxディレクトリにある設定ファイルを開きます
nano /etc/selinux/config
②設定ファイルで SELINUX=enforcing 行を見つけます
#③SELINUX=disabled を変更します
#④保存して終了し、サーバーを再起動します
3. 概要curl リクエストが標準ポートと一致しない場合、この問題に直面しています。
たとえば、ポート 1234 でcurl を実行すると、ポート 80 の URL では非常に簡単な結果が得られるため、この問題に直面します。
最も一般的に、このエラーは、「selinux」を使用する CentOS およびその他のオペレーティング システムで発生します。
無効にするか、「selinux」を許可するように変更する必要があります
推奨学習: 「
以上がPHP CURLエラーコード7の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。