포트 4321의 localhost에 php cURL 라이브러리를 사용하여 cURL 요청을 시도 할 때 권한이 거부되었습니다. 누군가가 쉽게 이해할 수 있습니다. 누가 전에 이것에 빠졌습니까?php cURL to localhost가 열린 포트에서 사용 권한을 거부 함을 반환합니다.
로컬 네트워크의 다른 시스템에서 프로덕션 서버로 동일한 cURL 요청을 할 수 있습니다. 예를 들어 근거리 통신망의 다른 시스템에서 다음과 같은 기능을 사용하여 요청하면 $host='http://192.168.1.100:4321'
과 같이 모든 것이 정확하게 작동해야합니다. 내가 $host='http://localhost:4321'
또는 $host='http://127.0.0.1:4321'
또는 $host='::1:4321'
그때 내가
내 아주 간단한 요청을 쓴 기능을 "사용 권한이 거부되었습니다"의 컬 오류가 시스템 자체에서 실행하는 경우입니다 :
function makeRequest($host,$data){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $host);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = json_decode(curl_exec($ch),true);
if(!empty(curl_error($ch))){
$result = print_r(curl_error($ch).' - '.$host);
}
curl_close($ch);
return $result;
}
시스템이있다 centos 7 서버. firewall-cmd --list-all
을 실행하면 내 열린 포트 당신이 어떤 생각을 가지고, 또는 주저하지 않는 설정을 확인하기 위해 내가 필요하면
ports: 443/tcp 80/tcp 4321/tcp
보여줍니다. 나는 동일한 포트 모두에 대해 명령 행 컬을 사용하면 다시 하차 제공 EDIT2
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
처럼 편집 호스트 파일을 찾습니다.
/]$ curl -v localhost:4321
* About to connect() to localhost port 4321 (#0)
* Trying ::1...
* Connected to localhost (::1) port 4321 (#0)
> GET/HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:4321
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: no-cache, no-store, must-revalidate
< Content-Length: 774....
'hosts' 파일을 검사하고'localhost'가'127.0.0.1'에 매핑되어 있는지 확인하고, 그렇지 않다면이 항목을 추가하고 2)'curl'을 실행합니다 명령 줄은'-v' 스위치를 사용하여 전체 출력을 확인하고 더 나은 통찰력을 얻습니다. 명령 줄에서 curl을 실행하는 경우, 결과를 볼 수 있도록 여기에 출력을 덤프하는 것을 고려하십시오. –
첫 번째 (성공한) 시도가 실패한 동안 'http : //'앞에 표시되었음을 알 수 있습니다. 그건 오타예요? cURL은 http (s) – apokryfos
에서 작동해야합니다. 이것은 오타입니다. 먼저'http : // '로 시도한 다음 나중에 사용하지 않았습니다. –