2011-09-19 6 views
0

cURL을 사용하여 간단한 API를 테스트하고 있습니다. 그것은 하나의 아파치 서버 (의 PHP 파일)을 다른 아파치 서버의 (PHP 파일)에 호출하는 것입니다. 로컬에서 테스트해도 괜찮습니다. 난 내 네트워크 PC를 테스트 할 때, 그것은 보여주는 403 오류 다음 발신자 서버 (서버 1)에 대한Apache에서의 cURL .. "액세스가 금지되었습니다! Error 403"

Access forbidden! You don't have permission to access the requested object. It is either read-protected or not readable by the server. If you think this is a server error, please contact the webmaster. Error 403

코드은 다음과 같습니다 서버 응답에 대한

function apicall($request_url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $request_url); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $return = curl_exec($ch); 
    curl_close($ch); 
    return $return; 
} 
$request_url = 'http://192.168.1.205/api.php?cname=David'; 
$response = apicall($request_url); 


코드 (서버 2)는 다음과 같습니다.

echo "Hello ".$_GET['cname']; 

아파치. 왜? 내가 무엇을해야 하나?

+0

'액세스가 금지되었습니다! 요청한 개체에 액세스 할 수있는 권한이 없습니다. 그것은 읽기 보호되어 있거나 서버가 읽을 수 없습니다. "명확한 메시지가 아닌가? 쿼리하는 서버 또는 타사 서버입니까? –

답변

0

WAMP를 사용하는 경우 "온라인에 넣기" 서버를 확인하십시오.

둘째로,

htaccess가 차단합니까?

1

이것은 cURL과 아무 관련이 없습니다. Apache 구성이 문제입니다.

api.php의 리소스는 스크립트가 실행되는 시스템에서 사용할 수없는 방식으로 구성됩니다.

는 아파치 구성에서, 루트 디렉토리, 당신은이 지시를 검사해야합니다
# Yours will not look like this 
# The key point is look at the 'Order' and 'Allow'/'Deny' directives for the root directory 
Order allow,deny 
Allow from all 

this에서 모양과 바로 아래 섹션 되세요.

또는, 당신은 이런 식으로 뭔가를 보이는 곳 api.php에 몇 가지 코드가있을 수 있습니다 :

header('HTTP/1.1 403 Forbidden'); 
exit("Access forbidden!\nYou don't have permission to access the requested object. It is either read-protected or not readable by the server.\nIf you think this is a server error, please contact the webmaster.\nError 403"); 

... 그러나, 당신은 당신의 코드에 말에 따라,이 아파치 구성에 대한 생각 .

관련 문제