2013-03-03 5 views
0

Я протестировал свой локальный сервер с прокси-сервером, и мои друзья могут загрузить URL-адрес в своем браузере, но когда я пытаюсь использовать cURL на отдельном сервере, он не может подключиться.Сервер доступен для прокси, но не cURL?

Вот URL, он загружает как на моем браузере и с помощью моего друга Интернет:

http://pc.stephen3.com:8080/gameq.php 

Вот код, я использую на отдельном сервере, он успешно извлекает все другие URL (как Google и Yahoo)

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://pc.stephen3.com:8080/gameq.php"); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$err = curl_error($ch); 
$resp = curl_exec($ch); 
echo $resp; 
echo $err; 

Но это ничего не возвращает на URL моего домашнего сервера и

curl_error($ch); 

(сказать, сейчас ничего не говорит) «не удалось подключиться к хосту»

Любые идеи, что это могло быть? URL работает везде, но в cURL. Код работает повсюду, но с URL-адресом.

EDIT: Мне пришло в голову, что это может быть из-за исходящего трафика на мой внешний сервер находиться на порту 8080 вместо 80 для обычных серверов, придется проверить, если мой хостер позволяет завиток на другие порты.

ответ

0

Оказывается, мой хозяин (Ipower) ограничивает Curl порт 80 :(

EDIT:. я узнал, что поддержка лгал, говоря только порт 80 разрешено На самом деле, они позволяют порт 80 И 990 (SSL), но вы можете использовать порт 990 без фактического подключения SSL. Работает отлично.

0

Возможно, вам нужно удалить номер порта из URL-адреса и настроить опцию CURLOPT_PORT.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://pc.stephen3.com/gameq.php"); // port removed 
curl_setopt($ch, CURLOPT_PORT, 8080); // that line added 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$err = curl_error($ch); 
$resp = curl_exec($ch); 
echo $resp; 
echo $err; 

Вы также можете использовать curl_getinfo($ch) функцию для получения дополнительной информации отладки.

$report=curl_getinfo($ch); 
echo "curl_getinfo returned: <br>".$report; 
Смежные вопросы