2011-09-19 2 views
0

Je suis en train de tester API simple avec cURL. C'est, appelant de (un fichier php de) un serveur Apache à (un fichier php de) un autre serveur Apache. C'est correct de tester localement. Mais quand je test avec mon PC en réseau, il montrant suivant erreur 403:cURL sur Apache montrant .. "Accès interdit! Erreur 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

Codes pour l'appelant Server (Serveur 1) sont:

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); 


Codes pour Répondre Server (serveur 2) sont les suivants:

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

cURL est activé à la fois Apache. Alors pourquoi? Qu'est-ce que je dois faire?

+0

Est 'Accès interdit! Vous n'êtes pas autorisé à accéder à l'objet demandé. Il est soit protégé en lecture, soit illisible par le serveur. »Pas un message clair? Est-ce votre propre serveur que vous interrogez ou un serveur tiers? –

Répondre

0

Si vous utilisez WAMP, assurez-vous de "mettre en ligne" le serveur.

En second lieu,

Est-ce que vous htaccess bloquer?

1

Cela n'a rien à voir avec cURL, c'est votre configuration Apache qui pose problème. Apache est configuré de telle manière que la ressource à n'est pas disponible sur la machine sur laquelle votre script est en cours d'exécution.

Dans la configuration d'Apache vous, pour le répertoire racine, vous devez consulter ces directives:

# 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 

Jetez un oeil à this et les sections immédiatement au-dessous.

Alternativement, vous pouvez avoir un code quelque part dans api.php qui ressemble à ceci:

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"); 

... Cependant, en fonction de ce que vous dites dans votre code, je pense que cela est à propos de la configuration Apache .