php / curl: проблема тайм-аута, когда удаленный сервер сам керлинг - PullRequest
0 голосов
/ 17 января 2010

У меня есть простой "серверный" скрипт, который просто выводит строку:

<?php 
echo "Server script on http://".$_SERVER['SERVER_NAME']." saying hello!";

И "клиентский" скрипт, керлинг серверного скрипта:

<?php 
echo "Client script";

$url = "http://localhost/server.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($ch);
curl_close($ch);        

echo "<br/>Data returned from server script:";
echo "<hr/>";
echo $data;

Последняя альтернатива не вызывает ответа от удаленного сервера, только браузер жует до истечения времени ожидания. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 17 января 2010

Проблема, по-видимому, на удаленном сервере.

Если удаленный сервер является общим сервером, и вы используете localhost вместо полного URL-адреса, то локальный компьютер не будет знать, какой локальный веб-сайт следует вызывать.

Другая возможность состоит в том, что ваш удаленный сервер не позволяет процессам сервера запрашивать данные из других источников. Чтобы проверить это, вы должны попытаться позвонить на локальный компьютер (если он доступен из Интернета) или на второй компьютер и позвонить с сервера.

0 голосов
/ 17 января 2010

У вас есть ошибка

$ch = curl_init();

должно быть

$ch = curl_init($url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...