cURL 에러(7): 호스트에 접속할 수 없었습니다.
아이템 코드를 cUrl(php)을 사용하여 xml 형식으로 웹 서비스에 보냅니다.localhost에서 올바른 응답을 얻었는데, 서버에서는 올바른 응답이 표시된다.
cURL 오류(7): 호스트에 연결할 수 없습니다.
제 코드는 다음과 같습니다.
function xml_post($post_xml, $url)
{
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// curl_setopt($ch, CURLOPT_PORT, $port);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\n";
} else {
echo "Data received\n";
}
curl_close($ch);
echo $data;
}
상품 코드를 집계에 보내서 상세 내용을 가져옵니다.php 4+와 php 5+ 버전을 모두 사용해 봤지만, 어떤 솔루션도 잘 되지 않습니다.
CURL 오류 코드 7(CURLE_CALNDT_CONNECT)
★★★★★★★★★★★★...,을 요.Failed to connect() to host or proxy.
다음 코드는 모든 시스템에서 작동합니다.
$ch = curl_init("http://google.com"); // initialize curl handle
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
print($data);
구글 페이지를 볼 수 없다면.. your URL is wrong 조금 있다.firewall ★★★★★★★★★★★★★★★★★」restrictiondisclossible을 클릭합니다.
어떤 이유로든 curl 요구가 방화벽 등에 의해 차단되면 "CURL ERROR 7 Failed to connect to Permission denied" 오류가 발생합니다.
컬 요구가 표준 포트에 없는 경우 이 문제가 발생합니다.
예를 들어 포트 1234에 있는 URL로 컬링하면 포트 80을 가진 URL을 통해 쉽게 결과를 얻을 수 있는 이 문제에 직면하게 됩니다.
이 오류는 CentOS 및 'SELINUX'를 사용하는 다른 OS에서 가장 일반적으로 볼 수 있습니다.
'SELINUX'를 비활성화하거나 허용으로 변경해야 합니다.
이것 좀 봐
http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied
도움이 되었으면 좋겠다
모든 방법을 시도했지만 실패했을 경우 다음 명령을 사용합니다.
setsebool -P httpd_can_network_connect on
PHP 에서는, 네트워크가 프록시인 경우.프록시 URL 및 포트를 설정해야 합니다.
curl_setopt($ch, CURLOPT_PROXY, "http://url.com"); //your proxy url
curl_setopt($ch, CURLOPT_PROXYPORT, "80"); // your proxy port number
이것으로 내 문제는 해결되었다
에는...cURL Error (7): ... Operation Timed Out회사 네트워크 연결을 사용하고 있습니다.몇 가지 환경변수를 만들어야 했어요.먹다'가 .
Linux 터미널의 경우:
$ export https_proxy=yourProxy:80
$ export http_proxy=yourProxy:80
윈도우에서는 윈도우 방식으로 (같은) 환경변수를 만들었습니다.
도움이 됐으면 좋겠네요!
안부 전해 주세요!
브라우저나 PHP 스크립트로 그 URL을 찾을 수 있습니까?에러는, 접속할 수 없었습니다.따라서 먼저 URL에 액세스할 수 있는지 확인합니다.
포트 80 및 443이 차단되었는지 확인합니다.또는 IP graph.facebook.com 라고 입력하고 etc/filename 파일에 입력합니다.
또, 동시에 복수의 HTTP 요구를 사용해 같은 URL 에 액세스 하려고 해도, 이 정보를 얻을 수 있습니다.많은 컬 요구는 접속할 수 없기 때문에 에러와 함께 반환됩니다.
이 문제는 리모트디바이스에 설정되어 있지 않은 경우 https에 컬콜을 발신하는 경우에도 발생할 수 있습니다.이러한 상황에서는 적어도 리모트로 ssl을 설정할 때까지 http를 사용하여 이 문제를 해결할 수 있습니다.
이 문제는 사용하고 있는 호스팅 프로바이더가 IP 블록 내에서 발신된IP 블록 앞으로 HTTP 패킷을 차단하는 것이 원인입니다.믿을 수 없어!!!
며칠 동안 나는 이것에 대해 완전히 막혔다.저는 네트워킹/vms를 매우 처음이지만 호스팅 회사에 비용을 지불하지 않고 직접 셋업해 보고 싶었습니다.
맥락
php 루틴을 사용하여 내부 소스 및 지도 기반 앱의 외부 API에서 다양한 데이터를 반환하는 앱의 서버 측을 재구축하고 있습니다.Oracle VM 인스턴스를 시작하고 Apache 및 php를 설치/설정했습니다.php 루틴 중 하나가 cURL을 실행하려고 할 때까지 모든 것이 정상적으로 실행됩니다.오류 로깅을 구현하기 시작하면 위와 매우 유사한 구현임에도 불구하고 '7'이라는 메시지가 '7'만 표시됩니다.데이터를 얻기 위해 내부 파일에 액세스하는 내 php 루틴이 성공적으로 실행되었기 때문에 Apache나 php 문제가 아니라고 확신했습니다.아파치 에러 로그도 확인했지만 아무 말도 안 했어요
솔루션
거의 포기했습니다.상기 및 다른 기사에서는 SELinux를 무효로 하는 것에 대해 언급하고 있습니다.그것은 제 목적에 맞게 동작했습니다만, 여기 SELinux https://www.electronicdesign.com/technologies/embedded-revolution/article/21807408/dont-do-it-disabling-selinux를 무효로 하면 안 되는 이유에 대한 매우 좋은 기사가 있습니다.
일시적으로 무효로 할 수 있지만, 저처럼 하고 싶지 않은 경우(SELinux가 당신을 차단하고 있는 것을 확인), SELinux의 문제를 보다 읽기 쉬운 방법으로 출력하는 깔끔한 명령어를 발견했습니다.
sealert -a /var/log/audit/audit.log
이를 통해 다음 항목이 반환되었습니다.
found 1 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------
SELinux is preventing php-fpm from name_connect access on the tcp_socket port 443.
좋아요, 이제 '7'보다 더 많은 정보를 얻었네요.아래를 읽어보면 실제로 제안사항이 있음을 알 수 있습니다.
***** Plugin catchall_boolean (24.7 confidence) suggests ******************
If you want to allow httpd to can network connect
Then you must tell SELinux about this by enabling the 'httpd_can_network_connect' boolean.
Do
setsebool -P httpd_can_network_connect 1
이것은 위에서 더 많이 언급되었지만, 이제 나는 그것이 하는 일에 대해 좀 더 많은 문맥과 설명을 가지고 있다.난 지휘부를 지휘하고 사업을 하고 있어게다가 SELinux는 아직 강제적으로 설정되어 있기 때문에 머신의 안전성이 향상됩니다.
로그아웃된 다른 제안이 많이 있습니다.차단된 경우 /var/log/audit/audit.log를 로그아웃/체크아웃하는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/9922562/how-to-resolve-curl-error-7-couldnt-connect-to-host
'source' 카테고리의 다른 글
| MySQL에서 인쇄문을 시뮬레이트하려면 어떻게 해야 합니까? (0) | 2022.09.20 |
|---|---|
| Python에서는 어떻게 이 긴 줄을 끊을 수 있을까요? (0) | 2022.09.20 |
| PHP 5 엄격한 표준 사용 안 함 오류 (0) | 2022.09.19 |
| Java 가비지 컬렉션 로그 메시지 (0) | 2022.09.19 |
| 플래터 앱의 크기가 너무 큽니다. (0) | 2022.09.19 |