cURL на Apache показывает .. "Доступ запрещен! Ошибка 403" - PullRequest
0 голосов
/ 19 сентября 2011

Я тестирую простой API с помощью cURL.Это вызов с (php-файла) одного сервера Apache на (php-файл) другого сервера Apache .Это нормально, тестирование на месте.Но когда я тестирую свои сетевые ПК, он показывает следующую ошибку 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

Коды для Caller Server (Server 1):

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'];

cURL включен на обоих Apache.Так почему же?Что мне нужно сделать?

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Это не имеет ничего общего с cURL, это проблема вашей конфигурации Apache.

Apache настроен таким образом, что ресурс на api.php недоступен для машины, на которой выполняется ваш сценарий.

В вашей конфигурации Apache для корневого каталога вам необходимо проверить следующие директивы:

# 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

Посмотрите на это и разделы, расположенные непосредственно под ним.

В качестве альтернативы, у вас может быть какой-то код в 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");

... однако, исходя из того, что вы говорите в своем коде, я думаю, что речь идет о конфигурации Apache.

0 голосов
/ 19 сентября 2011

Если вы используете WAMP, убедитесь, что вы «включили» сервер.

Во-вторых,

Вы блокируете его?

...